blob: 102f7b5d4ac656c71f404294cb048207a03716af [file] [log] [blame]
/*==============================================================================***
*°æ±¾ËùÓÐ (C)2012ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾
* Ä£¿éÃû £º
* ÎļþÃû £ºpswphyint.h
* Îļþ±êʶ£º
* Ïà¹ØÎļþ£º
* ʵÏÖ¹¦ÄÜ£ºWCDMA psºÍWCDMA PHYµÄ½Ó¿Ú¶¨Òå
* ×÷Õß £º
* °æ±¾ £º
* Íê³ÉÈÕÆÚ£º
* ÆäËü˵Ã÷£º
*/
#ifndef Z_PS_WPHY_INTERFACE_H
#define Z_PS_WPHY_INTERFACE_H
#ifndef Z_SEND_TO_SIMPHY
#include "ram_config.h"
#endif
/*==============================================================================
* Í·Îļþ°üº¬ *
==============================================================================*/
/****************************************************************************/
/* ICP ÖжÏ״̬붨Òå */
/****************************************************************************/
/***********************************************************************/
#define CONFIG_OPT_SIZE (1) /*for size optimize, if found some exception please disable it*/
/* PHY_CPU -> PS_CPU ICP STAUTS*/
#define PHY_PS_FRAME_ICP_MASK (DWORD)0x00000001
#define PHY_PS_WAKEUP_ICP_MASK (DWORD)0x00000002
/* PS_CPU -> PHY_CPU ICP STAUTS*/
#define PS_PHY_UPA_DATA_ICP_MASK (DWORD)0x00000001
#define PS_PHY_WAKEUP_ICP_MASK (DWORD)0x00000002
/*==============================================================================
* È«¾Öºê¶¨Òå *
==============================================================================*/
/*start:Ð¡ÇøËÑË÷²¿·ÖºêÖµ¶¨Òå*/
#define Z_W_P_MAX_NO_OF_FREQSCAN_FREQ (WORD)64 /*ÐèҪɨÃèµÄ×î´óƵ¶ÎÊýÄ¿*/
#define Z_W_P_MAX_NO_OF_RSSI_RESULTS (WORD)32 /*ɨƵÉϱ¨µÄ×î´óƵµãÊýÄ¿*/
#define Z_W_P_MAX_NO_OF_SEARCH_RESULTS (WORD)8 /*Ð¡ÇøËÑË÷Éϱ¨µÄ×î´óÐ¡ÇøÊýÄ¿*/
#define Z_W_P_CELLSRHTYPE_STRONGEST (WORD)0 /*·µ»ØÖ¸¶¨ÆµµãµÄ×îÇ¿Ð¡Çø*/
#define Z_W_P_CELLSEARCHTYPE_BLIND (WORD)1 /*·µ»ØÖ¸¶¨ÆµµãµÄÐ¡ÇøÁбí*/
#define Z_W_P_CELLSEARCHTYPE_SPEC (WORD)2 /*·µ»ØÖ¸¶¨PrimSrcµÄÐ¡Çø*/
/*ÉèÖÃWÎïÀí²ãÊÇ·ñÖ÷ģʽ*/
#define Z_W_P_IRAT_MODE_SLAVE (WORD)0 /*ÉèÖÃΪ¸¨Ä£Ê½*/
#define Z_W_P_IRAT_MODE_MASTER (WORD)1 /*ÉèÖÃΪÖ÷ģʽ*/
/*FDDƵ¶ÎºÅ¶¨Òå*/
#define Z_W_P_BAND_FDDI (WORD)1
#define Z_W_P_BAND_FDDII (WORD)2
#define Z_W_P_BAND_FDDIII (WORD)3
#define Z_W_P_BAND_FDDIV (WORD)4
#define Z_W_P_BAND_FDDV (WORD)5
#define Z_W_P_BAND_FDDVI (WORD)6
#define Z_W_P_BAND_FDDVII (WORD)7
#define Z_W_P_BAND_FDDVIII (WORD)8
#define Z_W_P_BAND_FDDIX (WORD)9
#define Z_W_P_BAND_FDDX (WORD)10
#define Z_W_P_BAND_FDDXI (WORD)11
#define Z_W_P_BAND_FDDXII (WORD)12
#define Z_W_P_BAND_FDDXIII (WORD)13
#define Z_W_P_BAND_FDDXIV (WORD)14
#define Z_W_P_BAND_FDDXIX (WORD)15
#define Z_W_P_BAND_FDDXX (WORD)16
#define Z_W_P_BAND_FDDXXI (WORD)17
/*end Ð¡ÇøËÑË÷²¿·ÖºêÖµ¶¨Òå*/
/*start:ϵͳÐÅÏ¢²¿·ÖºêÖµ¶¨Òå*/
#define Z_W_P_MAX_NUM_OF_BCH (WORD)8
#define Z_W_P_MAX_NO_OF_SIB_OFFS (WORD)16 /*ϵͳÐÅÏ¢Æ«ÒÆ×î´óÊý×é¸öÊý*/
#define Z_W_P_MAX_NO_OF_SIB_SCHEDULES (WORD)30 /*×î´óµ÷¶ÈÐÅÏ¢¸öÊý*/
/*ϵͳÐÅÏ¢¿éÀàÐÍ*/
#define Z_W_P_URRC_MIB (WORD)0
#define Z_W_P_URRC_SIB1 (WORD)1
#define Z_W_P_URRC_SIB2 (WORD)2
#define Z_W_P_URRC_SIB3 (WORD)3
#define Z_W_P_URRC_SIB4 (WORD)4
#define Z_W_P_URRC_SIB5 (WORD)5
#define Z_W_P_URRC_SIB6 (WORD)6
#define Z_W_P_URRC_SIB7 (WORD)7
#define Z_W_P_URRC_SIB11 (WORD)11
#define Z_W_P_URRC_SIB12 (WORD)12
#define Z_W_P_URRC_SIB14 (WORD)18
#define Z_W_P_URRC_SIB15 (WORD)19
#define Z_W_P_URRC_SIB16 (WORD)23
#define Z_W_P_URRC_SIB18 (WORD)26
#define Z_W_P_URRC_SB1 (WORD)27
#define Z_W_P_URRC_SB2 (WORD)28
#define Z_W_P_URRC_SIB5BIS (WORD)30
#define Z_W_P_URRC_SIB_TYPE_EXTENSION_TYPE (WORD)31
#define Z_W_P_URRC_SIB11BIS (WORD)32
#define Z_W_P_URRC_SIB15BIS (WORD)33
/*SIB-TypeExt2*/
#define Z_W_P_URRC_SIB19 (WORD)40
#define Z_W_P_URRC_SIB20 (WORD)42
#define Z_W_P_BCH_REQ_ONE (WORD)0 /*ÇëÇóÎïÀí²ãÒÔÖ¸¶¨·½Ê½¶Ábch*/
#define Z_W_P_BCH_REQ_ALL (WORD)1 /*ÇëÇóÎïÀí²ãÁ¬Ðø¶Ábch*/
#define Z_W_P_STTD_NOTUSED (WORD)0 /*²»Ê¹ÓÃSTTD*/
#define Z_W_P_STTD_USED (WORD)1 /*ʹÓÃSTTD*/
#define Z_W_P_STTD_UNNOTIFY (WORD)2 /*δ֪£¬¼´ps²»È·Èϵ±Ç°Ð¡ÇøÊÇ·ñʹÓÃSTTD*/
/*end:ϵͳÐÅÏ¢²¿·ÖºêÖµ¶¨Òå*/
/*start:×ÊÔ´²¿·ÖºêÖµ¶¨Òå*/
#define Z_W_P_MAX_UL_TRCH_NUM (WORD)8
#define Z_W_P_MAX_DL_TRCH_NUM (WORD)8
#define Z_W_P_MAX_UL_TF_NUM (WORD)32
#define Z_W_P_MAX_DL_TF_NUM (WORD)64
#define Z_W_P_MAX_UL_TFC_NUM (WORD)64
#define Z_W_P_MAX_DL_TFC_NUM (WORD)128
#define Z_W_P_MAX_NO_OF_RL (WORD)8/*×î´óRLÊýÄ¿*/
#define Z_W_P_MAX_EDCH_NO_OF_RL (WORD)4
#define Z_W_P_MAX_NO_OF_DPCHS (WORD)8
#define Z_W_P_MAX_H_PROCESS (WORD)8
#define Z_W_P_MAX_HS_SCCH_CODES (WORD)4
#define Z_W_P_MAX_REF_ETFCI (WORD)8
#define Z_W_P_MAX_HSCCHLESS_TFS_NUM (WORD)4
#define Z_W_P_TTI_2MS (WORD)1
#define Z_W_P_TTI_10MS (WORD)2
#define Z_W_P_TTI_20MS (WORD)3
#define Z_W_P_TTI_40MS (WORD)4
#define Z_W_P_TTI_80MS (WORD)5
#define Z_W_ACT_TIME_IMMEDIATELY (WORD)256/*¼¤»îʱ¼äÊÇÁ¢¼´¼¤»î*/
/*end ×ÊÔ´²¿·ÖºêÖµ¶¨Òå*/
/*start²âÁ¿Ïà¹Øºê¶¨Òå*/
#define Z_W_P_MAX_CELL_NUM (WORD)32 /*ͬƵÒìÆµ×î´óÖ§³ÖÐ¡ÇøÊýÄ¿*/
#define Z_W_P_MAX_INTRAFREQ_NUM (WORD)1 /*ͬƵƵµãÊýÄ¿£¬²»¿¼ÂǵڶþÉÏÐÐÆµµãʱ¸ÃֵΪ1*/
#define Z_W_P_MAX_INTERFREQ_NUM (WORD)8 /*ÒìÆµÅäÖÃÆµµãÊýÄ¿*/
#define Z_W_P_MAX_BLIND_INTERFREQ_NUM (WORD)16 /*ÒìÆµÃ¤ÆµµãµÄƵµãÊýÄ¿*/
#define Z_W_P_MAX_BLIND_INTERFREQ_CELL_NUM (WORD)3 /*äƵµãÏÂÐ¡ÇøÊýÄ¿*/
#define Z_W_P_MAX_CM_NUM (WORD)6 /*ѹËõģʽÅäÖÃÏîÊýÄ¿*/
#define Z_W_P_MAX_FRAME_GAP_NUM (WORD)2 /*Ò»¸öÖ¡ÖÐ×î´óGAPÊýÄ¿*/
/*end²âÁ¿Ïà¹Øºê¶¨Òå*/
/*start²ã¶þÏà¹Øºê¶¨Òå*/
/*ÎÞÏß×ÊÔ´ÅäÖÃÏà¹Øºê¶¨Òå*/
#define Z_W_P_MAX_UL_FREQUENCY_NUM (WORD)2
#define Z_W_P_MAX_DL_FREQUENCY_NUM (WORD)2
/*´«ÊäÐŵÀÀàÐÍ,½öÓÃÓÚºÍÎïÀí²ãµÄ½Ó¿ÚÖÐ*/
#define Z_W_P_PCH (WORD)0
#define Z_W_P_FACH (WORD)1
#define Z_W_P_DL_DCH (WORD)2
#define Z_W_P_RACH (WORD)3
#define Z_W_P_UL_DCH (WORD)4
/*UPAÏà¹Ø²ÎÊý*/
//#define Z_W_P_MAX_REF_ETFCI_NUM (WORD)8/*Z_W_P_MAX_REF_ETFCI*/
#define Z_W_P_MAX_RG_NUM (WORD)4
/*Êý¾Ý½Ó¿Ú´óС*/
#define Z_W_P_MAX_NO_OF_UL_BYTES (WORD)1168
#define Z_W_P_MAX_NO_OF_DL_BYTES (WORD)1168
#define Z_W_P_MAX_NO_OF_HSDPA_BYTES (WORD)5274
#define Z_W_P_MAX_NO_OF_HSUPA_BYTES (WORD)2876
#define Z_W_P_MAX_ETFCI_NUM (WORD)128
#define Z_W_P_MAX_NTR_NUM (WORD)8
/*rachÏà¹Ø*/
#define Z_W_P_RACH_ACCESS_ACK (WORD)0
#define Z_W_P_RACH_ACCESS_NACK (WORD)1
#define Z_W_P_RACH_ACCESS_NO_ACK (WORD)2
/*ÏÂÐÐÊý¾ÝÀàÐÍ*/
#define Z_W_P_PCH_FACH_DCH_DATA (WORD)0
#define Z_W_P_DPA_DATA (WORD)1
/*end²ã¶þÏà¹Øºê¶¨Òå*/
/*wÖ÷Ä£Á¬½Ó̬(FACH ¡¢DCH)ÎïÀí²ãÉϱ¨GAPÐèÒª¿Û³ýµÄÉ䯵±£»¤¼ä¸ôµ¥Î»CHIP, 7520°æ±¾Í·Î²·Ö±ð¿Û³ý30chips(7.8125us) 660chips(171.875us). */
#define Z_W_P_MEAS_DCHGAP_START_OFF (WORD)30
#define Z_W_P_MEAS_DCHGAP_TAIL_OFF (WORD)660
#define Z_ZWPCG_VALFG_NUM (WORD)8
#define Z_ZWPCG_PARAM_NUM (WORD)25
/*==============================================================================
* È«¾ÖÊý¾ÝÀàÐͶ¨Òå *
==============================================================================*/
/*==============================================================================
* Ð¡ÇøËÑË÷È«¾ÖÊý¾ÝÀàÐͶ¨Òå start *
==============================================================================*/
/*==============================================================================
RRC->PHY
ʼþ£ºP_W_FREQUENCY_SCAN_REQ
¹¦ÄÜ:
¿ÉÄܳöÏÖµÄÔÚ³õʼ״̬£¬IDLE̬£¬CELL_PCH̬£¬CELL_URA̬£¬L1¸ù¾ÝÏûÏ¢ÖÐ
Я´øµÄƵµã»òƵ¶ÎÐÅÏ¢½øÐÐɨƵ£¬Ê×ÏÈÖ´ÐÐÆµ¶ÎɨƵ£¬Ö®ºóÔÙ½«Æµ¶ÎɨÃè½á
¹ûƵµãÓëЭÒéջϷ¢µÄÀëɢƵµã·ÅÔÚÒ»Æð½øÐÐÀëɢƵµãɨƵ
½á¹¹:
T_zW_P_frequency_scan_req
==============================================================================*/
typedef struct{
WORD wFreqStartRange;
WORD wFreqEndRange;
WORD wBandInd;
WORD wPadding;
}T_zW_P_frequency_range;
typedef struct
{
WORD wMsgId;
WORD wFreqRangeNum;
WORD wSeqNum;
WORD wWonlyFlg; /*µ±Ç°ÊÇ·ñÊÇWµ¥Ä££¬wWonlyFlg=1Ϊµ¥Ä££¬·ñÔòΪ¶àÄ£*/
T_zW_P_frequency_range atFrequencyRange[Z_W_P_MAX_NO_OF_FREQSCAN_FREQ];
}T_zW_P_frequency_scan_req;
/*==============================================================================
RRC->PHY
ʼþ£ºP_W_ABORT_FREQ_SCAN_REQ
¹¦ÄÜ:
Í£Ö¹L1ƵÂÊɨÃèÇëÇó
½á¹¹:
T_zW_P_abort_frequency_scan_req,¿Õ½á¹¹
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_frequency_scan_req;
/*==============================================================================
PHY->L1W
ʼþ£ºP_ABORT_FREQ_SCAN_CNF
¹¦ÄÜ:
Í£Ö¹L1ƵÂÊɨÃèÈ·ÈÏ
½á¹¹:
T_zW_P_abort_frequency_scan_cnf,¿Õ½á¹¹
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_frequency_scan_cnf;
/*==============================================================================
PHY->RRC
ʼþ£ºP_FREQUENCY_SCAN_IND
¹¦ÄÜ:
L1Íê³ÉɨƵºó£¬Í¨¹ýÏûÏ¢P_FREQUENCY_SCAN_INDÉϱ¨É¨Æµ½á¹û,ÎïÀí²ã¸ù¾Ý
RSSI²âÁ¿Öµ¼°PSCHÏà¹ØÄÜÁ¿¶ÔƵÂʽøÐÐÅÅÐò£¬×î¿ÉÄÜפÁôµÄƵÂÊ·ÅÔÚÊ×룬
ÒÀ´ÎÀàÍÆ£¬²»ÄÜפÁôµÄƵÂʲ»Éϱ¨¡£
Èç¹ûɨƵ½á¹û³¬¹ý32£¬ÎïÀí²ã½«Ç°32ǿƵµã×÷Ϊ½á¹ûÉϱ¨Ð­ÒéÕ»¡£
½á¹¹:
T_zW_P_frequency_scan_ind
==============================================================================*/
typedef struct{
WORD wFrequency;
WORD wPadding;
}T_zW_P_scan_result;
typedef struct
{
WORD wMsgId;
WORD wScanRltNum;
WORD wSeqNum;
WORD wPadding;
T_zW_P_scan_result atScanResult[Z_W_P_MAX_NO_OF_RSSI_RESULTS]; /*ÎïÀí²ã½«É¨Æµ½á¹ûǰ32Ç¿Éϱ¨*/
}T_zW_P_frequency_scan_ind;
/*==============================================================================
RRC->PHY
ʼþ£ºP_CELL_SEARCH_REQ
¹¦ÄÜ:
Ö¸¶¨ÆµµãÉϲéÕÒÖ¸¶¨ÊýÄ¿Ð¡Çø¡£Èç¹ûµ±Ç°ÒÑÓзþÎñÐ¡Çø£¬L1ÐèҪͬʱ±£³Ö·þÎñÐ¡ÇøÍ¬²½£¬
ÒÔ¼°½ÓÊÕѰºôµÈ¡£Èç¹ûÊÕµ½Ñ°ºôµÈÇé¿öÐèÒªÖжÏL1Ð¡ÇøËÑË÷£¬ÖжϺóL1²»ÔÙÏòЭÒéÕ»Éϱ¨ÒÑ
·¢ÏÖÐ¡ÇøÐÅÏ¢¡£Èç¹ûnum_of_cell_idÈ¡0£¬ÇëÇóL1ÔÚÖ¸¶¨ÆµµãÉÏäËÑÐ¡Çø£¬Âú×ã¡°ÃÅÏÞ¡±µÄ
num_of_result¸öÐ¡ÇøÉϱ¨¡£Èç¹ûnum_of_cell_idÈ¡·Ç0Öµ£¬ÇëÇóL1ÔÚÖ¸¶¨cell_parameter_idµÄ
Ð¡ÇøÁбíÖÐËÑË÷Âú×ã¡°ÃÅÏÞ¡±µÄÐ¡ÇøÉϱ¨¡£ÆäÖеġ° ÃÅÏÞ¡± ÓÉÎïÀí²ã¸ù¾ÝÐÔÄÜÈ·¶¨
½á¹¹:
T_zW_P_cell_search_req
==============================================================================*/
typedef struct
{
WORD wTxDiversityInd; /*²Î¼ûºê¶¨Òå,½öµ±wSearchTypeΪָ¶¨ËÑË÷ʱÓÐЧ*/
WORD wPrimSrc;
}T_zW_P_cellsrh_info;
typedef struct
{
WORD wMsgId;
WORD wSeqNum;
WORD wFrequency;
WORD wSearchType; /*²Î¼ûºê¶¨Òå*/
WORD wNumOfResult;
WORD wNumOfCell;
T_zW_P_cellsrh_info atCellSrhInfo[Z_W_P_MAX_NO_OF_SEARCH_RESULTS];
}T_zW_P_cell_search_req;
/*==============================================================================
PHY->RRC
ʼþ£ºP_ABORT_CELL_SEARCH_REQ
¹¦ÄÜ:
Í£Ö¹ÎïÀí²ãµÄcell search¡£
½á¹¹:
T_zW_P_abort_cell_search_req,¿Õ½á¹¹
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_cell_search_req;
/*==============================================================================
PHY->L1W
ʼþ£ºP_ABORT_CELL_SEARCH_CNF
¹¦ÄÜ:
Í£Ö¹ÎïÀí²ãµÄcell searchÈ·ÈÏ¡£
½á¹¹:
T_zW_P_abort_cell_search_cnf,¿Õ½á¹¹
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_cell_search_cnf;
/*==============================================================================
PHY->RRC
ʼþ£ºP_CELL_SEARCH_IND
¹¦ÄÜ:
Éϱ¨Ö¸¶¨ÆµµãÉÏÂú×ãÎïÀí²ã×îµÍÃÅÏÞÖµµÄ£¨Ö¸¶¨£©Ð¡Çø²âÁ¿½á¹û¡£
½á¹¹:
T_zW_P_cell_search_ind
==============================================================================*/
typedef struct{
WORD wPrimSrc;
WORD wCpichRscp;
WORD wCpichEcNo;
WORD wPadding;
}T_zW_P_cell_params;
typedef struct
{
WORD wMsgId;
WORD wSeqNum;
WORD wFrequency;
WORD wNumOfFoundCells;
T_zW_P_cell_params atCell[Z_W_P_MAX_NO_OF_SEARCH_RESULTS];
}T_zW_P_cell_search_ind;
/*==============================================================================
RRC->PHY
ʼþ£ºP_BCH_OPEN_REQ
¹¦ÄÜ:
¸ÃÏûÏ¢ÔÚ·ÇDCH̬»áÏ·¢,´ò¿ªBCH¶ÁϵͳÐÅÏ¢,¿ÕÏÐ̬,PCH̬¿ÉÒÔ¶ÁÈ¡·þÎñÐ¡Çø
ºÍÏàÁÚÐ¡ÇøÏµÍ³ÐÅÏ¢£¬FACHÖ»ÄܶÁÈ¡·þÎñÐ¡ÇøÏµÍ³ÐÅÏ¢¡£¸ÃÏûÏ¢ÎÞÏìÓ¦ÏûÏ¢¡£
½á¹¹:
T_zP_TD_bch_open_req
==============================================================================*/
typedef struct
{
WORD wSibType; /*²Î¼ûºê¶¨Òå*/
WORD wSegCount;/* SIBÏûÏ¢µÄ·Ö¶ÎÊýÄ¿£¬·¶Î§1..16*/
WORD wSibRep; /* SIBÖØ¸´ÖÜÆÚ*/
WORD wSibPos;/* SIBµÚÒ»¸ö·Ö¶ÎµÄλÖÃ*/
WORD wSibOff[Z_W_P_MAX_NO_OF_SIB_OFFS];
} T_sib_schedule_info;
typedef struct {
WORD wMsgId;
WORD wType; /*²Î¼ûºê¶¨Òå*/
WORD wTxDivMode; /*²Î¼ûºê¶¨Òå*/
WORD wFrequency;
WORD wPrimSrc;
WORD wCellReselectFlg;/*wCellReselectFlg=1±íʾ´Ë´Î¶ÁSIBÊÇÒòÖØÑ¡·¢Æð¡£Îª0±íʾ·ÇÐ¡ÇøÖØÑ¡ÒýÆð*/
WORD wNumOfSchedule;
WORD wPadding;
T_sib_schedule_info tSibScheduleInfo[Z_W_P_MAX_NO_OF_SIB_SCHEDULES];
}T_zW_P_bch_open_req;
/*==============================================================================
PHY->RRC
ʼþ£ºP_BCH_IND
¹¦ÄÜ:
´ò¿ªBCHºóL1Öð¿éÉϱ¨ÏµÍ³ÐÅϢָʾ, ¿ÕÏûÏ¢£¬Ð­ÒéÕ»ÊÕµ½´ËָʾºóÈ¥
¹Ì¶¨Buffer¶ÁϵͳÐÅÏ¢Êý¾Ý
½á¹¹:
T_zW_P_Bch_Buffer
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wSfn;
WORD wCrcCheck;
WORD wFrequency;
WORD wPrimSrc;
WORD wSfnDecodeRlt; /*0:ʧ°Ü£¬1³É¹¦*/
WORD awDataArea[Z_W_P_MAX_NUM_OF_BCH*2];
}T_zW_P_Bch_Ind;
/*==============================================================================
RRC->PHY
ʼþ£ºP_BCH_RELEASE_REQ
¹¦ÄÜ:
ЭÒéÕ»ÇëÇóL1Í£Ö¹½ÓÊÕϵͳÐÅÏ¢£¬ÊÍ·ÅBCH
½á¹¹:
T_zW_P_bch_release_req
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_bch_release_req;
/*==============================================================================
PHY->L1W
ʼþ£ºP_BCH_RELEASE_CNF
¹¦ÄÜ:
L1È·ÈÏЭÒéջֹͣ½ÓÊÕϵͳÐÅÏ¢
½á¹¹:
T_zW_P_bch_release_cnf
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_bch_release_cnf;
/*==============================================================================
RRC->PHY
ʼþ£ºP_CAMPON_A_CELL_REQ
¹¦ÄÜ:
RRCÔÚϵͳÐÅÏ¢¶ÁÈ¡Íê³Éºó£¬ÈÏÎªÐ¡Çø¿ÉפÁô£¬·¢ËÍ´ËÏûϢ֪ͨ
ÎïÀí²ã´ËÐ¡ÇøÎª·þÎñÐ¡Çø¡£
½á¹¹:
T_zW_P_camp_on_a_cell_req
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wUlFrequency;
WORD wDlFrequency;
WORD wPrimSrc;
WORD wPreDlFrequency;
WORD wPadding;
}T_zW_P_camp_on_a_cell_req;
/*==============================================================================
PHY->L1W
ʼþ£ºP_CAMPON_A_CELL_CNF
¹¦ÄÜ:
µ×²ãÈ·ÈÏפÁôÐ¡Çø¡£
½á¹¹:
T_zW_P_camp_on_a_cell_cnf
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wPadding;
}T_zW_P_camp_on_a_cell_cnf;
/*==============================================================================
RRC->PHY
ʼþ£ºP_SET_IRAT_MODE_REQ
¹¦ÄÜ:
ЭÒéջ֪ͨÎïÀí²ãģʽÀàÐÍ£¬ÊÇFDD mode¼´FDDΪÖ÷ģʽ£¬
»òÕß²»ÊÇFDD mode¼´FDDΪ¸¨¡£²»²Ù×÷É䯵¡£
½á¹¹:
T_zW_P_set_irat_mode_Req
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wModeTypes; /*0-·ÇÖ÷£¬1-Ö÷Ä££¬²Î¼ûºê¶¨Òå*/
}T_zW_P_set_irat_mode_Req;
/*==============================================================================
RRC->PHY
ʼþ£ºP_RESET_REQ
¹¦ÄÜ:
ЭÒéջ֪ͨÎïÀí²ã¸´Î»
½á¹¹:
T_zW_P_Reset_req
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_Reset_req;
/*==============================================================================
PHY->RRC
ʼþ£ºP_RESET_CNF
¹¦ÄÜ:
ÎïÀí²ã֪ͨЭÒéÕ»ÊÍ·ÅËùÓÐ×ÊÔ´½áÊø
½á¹¹:
T_zW_P_Reset_cnf
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_reset_cnf;
/*==============================================================================
RRC->PHY
ʼþ£ºP_W_REL_REQ
¹¦ÄÜ:
ÎïÀí²ãÊÍ·ÅËùÓÐЭÒéջϷ¢µÄÒµÎñÇëÇó¼°É䯵¡£
½á¹¹:
T_zW_P_release_req
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_release_req;
/*==============================================================================
PHY->RRC
ʼþ£ºP_W_REL_CNF
¹¦ÄÜ:
ÎïÀí²ã֪ͨЭÒéÕ»ÊÍ·ÅËùÓÐ×ÊÔ´½áÊø
½á¹¹:
T_zW_P_release_cnf
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_release_cnf;
/*==============================================================================
* Ð¡ÇøËÑË÷È«¾ÖÊý¾ÝÀàÐͶ¨Òå --------end *
==============================================================================*/
/*==============================================================================
* ×ÊÔ´ÅäÖÃÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå --------start *
==============================================================================*/
typedef struct{
WORD wNum;
WORD awList[21];
}T_zW_P_Imsi;
typedef struct{
WORD wSrncId;
WORD wPadding;
DWORD dwSrnti;
}T_zW_P_Urnti;
typedef struct {
WORD wUeIdValidBitmap;/*bit0..bit3ÓÐЧ£¬ÒÀ´Î·Ö±ðָʾÐÅÔªTmsiGsm¡¢PTmsiGsm¡¢ImsiGsm¡¢URntiÊÇ·ñ´æÔÚ¡£bitλΪ1±íʾ¶ÔÓ¦ÐÅÔª´æÔÚ£¬·ñÔò²»´æÔÚ*/
WORD wPadding;
WORD awTmsiGsm[4];
WORD awPTmsiGsm[4];
T_zW_P_Imsi tImsiGsm;
T_zW_P_Urnti tUrnti; /*PCH̬ʹÓÃ*/
}T_zW_P_ue_id;
typedef struct
{
WORD wPichChanCode;
WORD wNumOfPiPerFrame;
WORD wPichSttdInd;
WORD wDrxCycleLengthCoeff;
WORD wPichPowerOff;
WORD wNumOfSccpch;
T_zW_P_ue_id tUeIdInfo;
} T_zW_P_pich_info;
typedef struct{
WORD wSecScrambCodeFlg;
WORD wSecScrambCode;
WORD wChanCode;
WORD wScrambCodeChangeFlg;
} T_zW_P_dpch_ChannelCode;
typedef struct{
DWORD dwCtfc;
WORD wTfci;
WORD wTfcPowerParaFlg;/*¹¦ÂÊ¿ØÖƲÎÊý±êʶ£¬1±íʾÐèÒª²Î¿¼ÏÂÊö¹¦ÂʲÎÊýÐÅÏ¢£¨PowerOffPpmÐÅÏ¢£¬ÏÔʾBetaCºÍBetaDÐÅÏ¢£¬²Î¿¼TFCIDÐÅÏ¢£©¡£0±íʾÎÞ¹¦¿Ø²ÎÊý*/
WORD wPowerOffPpmFlg;
WORD wPowerOffPpm;/*Needed only for PRACH*/
WORD wGainFactorInfo;/*±íʾBetaC£¬BetaDÓÃÏÔʾ¸ø³öµÄ·½Ê½»¹ÊÇÓòο¼TFC¼ÆËãµÄ·½Ê½¡£
ȡֵ0»ò1£¬0:±íʾÏÔʾ֪ͨ, BetaÖµ²ÉÓýӿÚÖÐÅäÖõÄwBetaD, wBetaC
1:±íʾ²Î¿¼·½Ê½,¸ù¾ÝwRefTfcIdÕÒµ½¶ÔÓ¦µÄBetaÖµ*/
WORD wBetaC;/*signalledGainFactorsÏÔʾ¸ø³öµÄBetaC ȡֵ0~15*/
WORD wBetaD; /*signalledGainFactorsÏÔʾ¸ø³öµÄBetaD ȡֵ0~15*/
WORD wRefTfcIdFlg;
WORD wRefTfcId; /*computedGainFactors Ref tfci£¬0~3 £¬ÐèÒªµ½²Î¿¼TFCIDÏÂѰÕÒ±¾TFCIDÐèÒªµÄBetaC£¬BetaD*/
WORD wPadding;
}T_zW_P_ul_ctfc_tfc;
typedef struct{
DWORD dwCtfc;
WORD wTfci;
WORD wPadding;
}T_zW_P_dl_ctfc_tfc;
typedef struct{
/*Unit is bits;UURRC should compute the TB size by the rlc size*/
WORD wTransBlockSize;
WORD wNumOfTransBlocks;
WORD wTfi;
WORD wPadding;
}T_zW_P_dynamic_tfs;
typedef struct{
WORD wTrchId;
WORD wTrchType; /*רÓÃÐŵÀ OR ¹«¹²ÐŵÀ*/
WORD wCodingTypeOfChannel;
WORD wTti;
WORD wCrcLength;
WORD wRmAttribute;
WORD wNumOfDynamicTfs;
WORD wPadding;
}T_zW_P_static_tfs;
typedef struct{
WORD wNumOfTrch;
WORD wNumOfTfc;
T_zW_P_static_tfs atStaticTFS[Z_W_P_MAX_UL_TRCH_NUM];
T_zW_P_dynamic_tfs atDynamicTFS[Z_W_P_MAX_UL_TF_NUM];
T_zW_P_ul_ctfc_tfc atCtfc[Z_W_P_MAX_UL_TFC_NUM];
}T_zW_P_ul_dpch_trch_reconfig;
typedef struct
{
WORD wPrimSrc; /* PrimaryCPICH */
WORD wPcpichUsageForChannelEst; /*SecondaryCPICH-Info*/
WORD wDpchFrameOffset;
WORD wSecCpScrCodeFlg;
WORD wSecCpichScrambCode; /* SecondaryCPICH-Info*/
WORD wSecCpChanCodeFlg;
WORD wSecCpichChanCode;/* SecondaryCPICH-Info*/
WORD wTpcCombIndex; /* TPC-CombinationIndex */
WORD wClosedLoopTimAdjMode;
WORD wPowerOffTpcPdpdch; /* PowerOffsetTPC-pdpdch */
WORD wTxDivMode; /* DL-CommonInformation-r8*/
WORD wNumOfDpchs;
T_zW_P_dpch_ChannelCode atDlDpchChannelCode[Z_W_P_MAX_NO_OF_DPCHS];
} T_zW_P_dedicated_rl_params;
typedef struct{
WORD wNumOfTrch;
WORD wNumOfTfc;
/* ´ÓÓÒµ½×óBITλ¶ÔÓ¦µÄ´«ÊäÐŵÀ˳ÐòÓëatStaticTFSÏàͬ£»bitÖµ0±íʾ²»ÐèÒª½âÎö£¬1±íʾÐèÒª½âÎö */
WORD wEnableDecodeBitmap;
WORD wPadding;
/* ¸Ã¸ÃÊý×éÔÚDCH̬ʱÓÐЧ£¬Êý×éÔªËØ¶ÔÓ¦µÄ´«ÊäÐŵÀ˳ÐòÓëatStaticTFSÏàͬ£»
Target_BLERΪ¿ÉÑ¡²ÎÊý£¬ÖµµÄ·¶Î§Îª0ÖÁ63£¬0xffff±íʾ²ÎÊý²»´æÔÚ£»ÎïÀí²ãÊÕµ½ºóÒª*£¨-0.1£©µÃµ½Êµ¼ÊÖµ */
WORD awTargetBler[Z_W_P_MAX_DL_TRCH_NUM];
T_zW_P_static_tfs atStaticTfs[Z_W_P_MAX_DL_TRCH_NUM];
T_zW_P_dynamic_tfs atDynamicTfs[Z_W_P_MAX_DL_TF_NUM];
T_zW_P_dl_ctfc_tfc atCtfc[Z_W_P_MAX_DL_TFC_NUM];
}T_zW_P_dl_trch_reconfig;
typedef struct
{
WORD wPrimSrc; /** PrimaryCPICH */
WORD wPcpichUsageForChannelEst; /*SecondaryCPICH-Info*/
WORD wDpchFrameOffset;
WORD wFdpchSlotFormat;
WORD wSecCpScrCodeFlg;
WORD wSecCpichScrambCode; /* SecondaryCPICH-Info*/
WORD wSecCpChanCodeFlg;
WORD wSecCpichChanCode;
WORD wFdpchSecScrambCodeFlg;
WORD wFdpchSecScrambCode;
WORD wTpcCombIndex; /* TPC-CombinationIndex */
WORD wSttdIndication;
WORD wFdpchChanCode;
WORD wPadding;
}T_zW_P_fdpch_dedicated_rl_params;
typedef struct{
WORD wNumOfTfc;
WORD wPadding;
T_zW_P_static_tfs tStaticTFS;
T_zW_P_dynamic_tfs atDynamicTFS[Z_W_P_MAX_UL_TF_NUM];
T_zW_P_ul_ctfc_tfc atCtfc[Z_W_P_MAX_UL_TFC_NUM];
} T_zW_P_rach_tfs_tfcs_config;
typedef struct{
WORD wMaxTxPower;
WORD wPrachScrambCode; /* Preamble scrambling code number0-15 */
WORD wMinSpreadingFactor;/* Available SF In chips per symbol
Defines the minimum allowed SF */
/* Each bit indicates availability for a signature, where the signatures are numbered "signature 0" up to "signature 15". The value 1 of a bit indicates that the corresponding signature is available and the value 0 that it is not available*/
WORD wPuncturingLimit;
/*10.3.6.55*/
/* Preamble_Initial_Power = Primary CPICH TX power - CPICH_RSCP + UL interference + Constant Value */
/* Preamble_Initial_Power= wInitialPowerOffset - CPICH_RSCP */
WORD wInitialPowerOff;
/*Prach Power Offset*/
WORD wPowerRampStep;/*PRACH¹¦ÂÊÆ«ÒÆ Power Ramp Step */
WORD wPreambleMaxRetrans;
/*10.3.6.2*/
WORD wAichChanCode;
WORD wAichTxdivMode; /*·¢ËÍ·Ö¼¯Ö¸Ê¾*/
WORD wAichTransTiming; /*AICH´«Êäʱ¼ä */
WORD wAichPowerOff;
WORD wRachTfsTfcsCfgFlg;
T_zW_P_rach_tfs_tfcs_config tRachTfsAndTfcsConfig;
} T_zW_P_prach_sysinfo;
typedef struct{
WORD wPowerOffHspdsch;
/* CQI feedback cycle count (0..160 ms) */
WORD wCqiFeedbackCycle;
/* CQI repetition factor (1..4) */
WORD wCqiRepFactor;
/* delta CQI (0..8) */
WORD wDeltaCqi;
}T_zW_P_MeasFeedBack;
typedef struct{
T_zW_P_MeasFeedBack tMeasFeedBack;
WORD wDeltaAck; /* delta ACK (0..8) */
WORD wDeltaNack; /* delta NACK (0..8) */
/* ACK-NACK repetition factor (1..4) UL-DPCH-PowerControlInfo-r7 */
WORD wAckNackRepFactor; /*DPCH¹¦ÂÊ¿ØÖÆ*/
/*(0, 1)1 indicates that preamble and postamble are used on the HS-DPCCH - see [29]*/
WORD wHarqPreambleMode; /* (MP)*/
}T_zW_P_hs_dpcch;
typedef struct{
WORD wNumbOfProcess;
/*memory partitioning 0:implicit 1:explicit*/
WORD wMemoryPartition;
DWORD dwProcessMemorySize[2*Z_W_P_MAX_H_PROCESS];
}T_zW_P_hs_harq_info;
typedef struct {
WORD wHsscchLessTfci;
WORD whsscchLessSecCodeSup;
} T_zW_P_hsscch_LessTfsList;
typedef struct {
WORD wHspdschCodeIndex;
WORD wHsscchLessTfsNum;
WORD wHsscchLessActiveFlg;
WORD wPadding;
T_zW_P_hsscch_LessTfsList atHsscchLessTfsList[Z_W_P_MAX_HSCCHLESS_TFS_NUM];
} T_zW_P_hsscch_less;
typedef struct{
WORD wDtxCycle1;
WORD wDtxCycle2;
WORD wDtxLongPreambleLength;
WORD wCqiDtxTimer;
WORD wDpcchBurst1;
WORD wDpcchBurst2;
WORD wCycle2InactivityThred;
WORD wDtxActiveFlg;
} T_zW_P_dtx_info;
typedef struct{
WORD wDrxCycle;
WORD wDrxCycleInacteThred;
WORD wDrxGrantMonitor;
WORD wDrxActiveFlg;
} T_zW_P_drx_info;
typedef struct{
WORD wEnableDelay;
WORD wDtxDrxOff;
WORD wUlDpcchSlotFormat;
WORD wDrxFlg;
T_zW_P_dtx_info tDtxInfo;
T_zW_P_drx_info tDrxInfo;
} T_zW_P_dtx_drx_config;
typedef struct{
/* indicate if secondary scrambling code exists for HS SCCH channel */
WORD wSecScrambCodeFlg;
/* secondary scrambling code value.
Valid only if sec_scr_code_valid is set to TRUE.
If not valid then primary CPICH scrambling code is used */
WORD wSecScrambCode;
/* number of channelisation codes to SCCH */
WORD wNumOfChannelCode;
WORD wPadding;
/* SCCH channelisation codes */
WORD awScchChannelCode [Z_W_P_MAX_HS_SCCH_CODES];
}T_zW_P_hs_scch;
typedef struct{
WORD wDlfreq;
/* serving HS-PDSCH radio link primary scrambling code */
WORD wPrimSrc;
WORD wHrnti;
WORD wDl64QAMConfigured;
WORD wHsDschTbSizeTable;
WORD wResetDpaFlg;
T_zW_P_hs_scch tHsscchConfigInfo;
}T_zW_P_hsdpa_info;
typedef struct{
WORD wDlfreq;
WORD wNewHrnti;
WORD wPrimSrc;
WORD wMeasPowerOff;
WORD wDl64QAMConfigured;
WORD wDiffTxDivers;
WORD wHsDschTbSizeTable;
WORD wSecHsdpaActiveFlg;
T_zW_P_hs_scch tHsscchConfigInfo;
}T_zW_P_sec_hsdpa_info;
typedef struct{
/*0:normalpattern,Ϊ0Ê±ÇøÓòIEÎÞЧ; 1: diversityPattern */
WORD wSecondCpichPattern;
WORD wScpichPowerOffFlg;
WORD wChanCode;
/*ȡֵ·¶Î§£º94-100 µ¥Î»dB,ÕæÊµÈ¡Öµ·¶Î§£º-6-0*/
WORD wScpichPowerOff;
}T_zW_P_mimo_pilot_info;
typedef struct{
/*ÓÃÓÚ´æ´¢mimoN-M-RatioÖÐö¾ÙÖµ¶ÔÓ¦µÄNµÄÖµ*/
WORD wMimoNRatio;
/*ÓÃÓÚ´æ´¢mimoN-M-RatioÖÐö¾ÙÖµ¶ÔÓ¦µÄMµÄÖµ*/
WORD wMimoMRatio;
WORD wPrecodeWeigRestr;
WORD wPadding;
T_zW_P_mimo_pilot_info tMimoPilotCfg;
} T_zW_P_mimo_info;
typedef struct{
/* 10.3.6.69a*/
WORD wRefTfci;
WORD wTfciPo;
} T_zW_P_edch_tfci_po;
typedef struct{
WORD wEdchRefEtfciNum;
WORD wPadding;
T_zW_P_edch_tfci_po atEdchTfciPo[Z_W_P_MAX_REF_ETFCI];
} T_zW_P_edch_grant_config_info;
typedef struct{
WORD wMinReducedEdpdchGainFactor;
WORD wMinEtfcSet; /*0XFFFF±íʾûÓÐÅäÖÃ×îСETFC×Ó¼¯*/
T_zW_P_edch_grant_config_info tEdchGrantConfigInfo;
} T_zW_P_edpdch_info;
typedef struct{
WORD wEdpcchPowerOffFlg;
WORD wDpcchPowerOff;
WORD wEdpdchPowerInterpolation;
/* E-TFC Boost Info */
WORD wEtfcBoostInfoFlg;
WORD wEtfciBoost;
WORD wDeltaT2TP;
} T_zW_P_edpcch_info;
typedef struct{
WORD wEdchTti;
/* 25.331, 10.3.5.7d:
If "rv0" is indicated, the UE shall only use E_DCH RV index 0.
Default value is "rvtable", in which case the UE shall use an RSN based
RV index. */
WORD wHarqRvConfig;/*0ºÍ1£¬·Ö±ð±íʾrv0ºÍrvtable*/
T_zW_P_edpdch_info tEdpdchInfo;
T_zW_P_edpcch_info tEdpcchInfo;
} T_zW_P_edch_ul_info;
typedef struct{
WORD wEagchChanCode;
WORD wPadding;
} T_zW_P_edch_agch_info;
typedef struct
{
/* E-HICH-RGCH-SignatureSequence Signature Sequence; Ref: 10.3.6.122 in 25.331*/
WORD wSignatSequence; /* 0..39 */
WORD wPadding;
}T_zW_P_comm_edch_rgch_info;
typedef struct{
/* RG combination index; Ref: 10.3.6.100 in 25.331*/
WORD wRgchCombIdx; /* 0..5 */
/* E-HICH-RGCH-SignatureSequence Signature Sequence; Ref: 10.3.6.100 in 25.331*/
WORD wSignatSequence; /* 0..39 */
} T_zW_P_edch_rgch_info;
typedef struct{
/* HICH channelization code; Ref: 10.3.6.101 in 25.331 E-HICH-ChannelisationCode */
WORD wEhichChannlCode; /* 0..127 */
/* E-HICH-RGCH-SignatureSequence Signature Sequence; Ref: 10.3.6.100 in 25.331*/
WORD wSignatSequence; /* 0..39 */
} T_zW_P_edch_hich_info;
typedef struct{
WORD wEchDlChanBitmap;
/* primary scrambling code of this RL */
WORD wEdchRlPrimSrc;
T_zW_P_edch_rgch_info tEdchErgchInfo;
T_zW_P_edch_hich_info tEdchEhichInfo;
} T_zW_P_edch_dl_per_rl_info;
typedef struct{
WORD wPrimErntiFlg;
WORD wSecErntiFlg;
WORD wPrimErnti;
WORD wSecErnti;
/* Serving RL index in array atEdchDRlAddRecfgInfo[ [MAX_edch_RL] */
WORD wEdchServRlIdx; /* 0..(MAX_edch_RL-1) */
/* number of enteries valid in array e_rl_info[L1_MAX_edch_RL] */
WORD wNumOfEdchRl;
T_zW_P_edch_agch_info tEdchEagchInfo;
T_zW_P_edch_dl_per_rl_info atEdchDlRlInfo[Z_W_P_MAX_EDCH_NO_OF_RL];
} T_zW_P_edch_dl_info;
typedef struct{
T_zW_P_edch_ul_info tEdchUlInfo;
T_zW_P_edch_dl_info tEdchDlInfo;
}T_zW_P_edch_info;
typedef struct{
WORD wUlFreq;
WORD wScrambCodeType;
DWORD dwScrambCodeNum;
WORD wPowerPreambleLen;
WORD wDpcchPowerOff;
WORD wNumOfRl;
WORD wSecEdchActiveFlg;
T_zW_P_fdpch_dedicated_rl_params atFdpchDedicatedRlParams[Z_W_P_MAX_NO_OF_RL];
T_zW_P_edch_ul_info tEdchUlInfo;
T_zW_P_edch_dl_info tEdchDlInfo;
} T_zW_P_sec_edch_info;
typedef struct
{
WORD wT321;
WORD wDrx;
WORD wRxBurst;
WORD wDrxInterrupHsdsch;
} T_zW_P_fach_dpa_drx_info;
typedef struct
{
/* ACK-NACK repetition factor (1..4) UL-DPCH-PowerControlInfo-r7 */
WORD wAackNackRepFactor; /*DPCH¹¦ÂÊ¿ØÖÆ*/
WORD wPowerControlAlgorith;
WORD wTpcStepSize;
WORD wMeasFeedBackFlg;
T_zW_P_MeasFeedBack tMeasFeedBack;
WORD wDeltaAckFlg;
WORD wDeltaAck; /* delta ACK (0..8) */
WORD wDeltaNAckFlg;
WORD wDeltaNack; /* delta NACK (0..8) */
} T_zW_P_fach_dpcch;
typedef struct
{
WORD wHrntiType;
WORD wHrnti;
WORD wBcchHrnti;
WORD wHsdpaDrxFlg;
WORD wHsdpcchSupAck;
WORD wFachDpcchFlg;
T_zW_P_hs_scch tHsscchConfig;
T_zW_P_hs_harq_info tHsHarqInfo;
T_zW_P_fach_dpa_drx_info tHsdpaDrxInfo;
T_zW_P_fach_dpcch tFachDpcch;
} T_zW_P_fach_dpa_info;
typedef struct
{
WORD wSymbolOff;
WORD wFdpchChanCode;
WORD wUlDpcchScrambCodeType;
WORD wCommEdchRgchFlg;
DWORD dwUlDpcchScrambCode;
T_zW_P_comm_edch_rgch_info tCommEdchRgchInfo;
T_zW_P_edch_hich_info tEdchEhichInfo;
}T_zW_P_common_edch_resource_list;
typedef struct
{
WORD wPriErntiFlg;
WORD wPriErnti;
WORD wResetFlg;
WORD wMaxTxPower;
WORD wFdpchTpcCommandErrorRate;
/* 25.331, 10.3.5.7d:
If "rv0" is indicated, the UE shall only use E_DCH RV index 0.
Default value is "rvtable", in which case the UE shall use an RSN based
RV index. */
WORD wHarqRvConfig;
WORD wAddEdchBackOff;
WORD wEdchTti;
WORD wEtfciTableIndex;
WORD wCommonEdchResourceNum;
T_zW_P_edch_agch_info tEdchEagchInfo;
T_zW_P_edpdch_info tEdpdchInfo;
T_zW_P_edpcch_info tEdpcchInfo;
T_zW_P_common_edch_resource_list atCommonEdchResourcelist[32];
} T_zW_P_fach_upa_info;
typedef struct{
WORD wEaiInd;
WORD wDpcchPowerOffPe;
WORD wEaiPowerOff;
WORD wPadding;
T_zW_P_prach_sysinfo tPrachSysinfo;/* ÔöÇ¿ÏÂPRACHÖ»ÓÐÒ»×é¡£*/
}T_zW_P_hspa_plus_prach_info;
typedef struct
{
WORD wHrnti;/*½ÓÊÕÏÂÐÐHS-SCCHʱÓõ½µÄUE ±êʶ*/
WORD wBcchHrnti; /*ÔÚÏÂÐеÚÒ»ÌõHS-SCCHÉϽÓÊÕBCCHÉϵÄÏûϢʱÓõ½µÄרÓÃUE±êʶ*/
T_zW_P_hs_scch tHsscchConfig;
T_zW_P_hs_harq_info tHsHarqInfo;
} T_zW_P_dcch_dtch_relate_info;
typedef struct
{
WORD wSecScrambCodeFlg;
WORD wSecScrambCode;
WORD wSubFrameNumOfPcch;/*number of subframes used to transmit the PAGING TYPE 1*/
WORD wHsdpaChanCode;
WORD wTbsNum;
WORD wPadding;
WORD awTbsList[2];
}T_zW_P_pcch_relate_info;
typedef struct
{
WORD wDcchDtchRec;/*µ±Ç°ÊÇ·ñÖ§³Ö½ÓÊÕDTCHºÍDCCH£»0£º²»Ö§³Ö£»1£ºÖ§³Ö*/
WORD wPadding;
T_zW_P_dcch_dtch_relate_info tDcchDtchInfo; /*Dcch/DtchÉϵĽÓÊÕÅäÖÃÐÅÏ¢£¬½öµ±wDcch_dtch_rec_fg=1ʱÓÐЧ*/
T_zW_P_pcch_relate_info tPcch_info; /*PcchÉϵĽÓÊÕÅäÖÃÐÅÏ¢£¬½öµ±wDcch_dtch_rec_fg=0ʱÓÐЧ*/
} T_zW_P_pch_dpa_info;
/*==============================================================================
Ô­ÓP_ADD_PRACH_REQ( URRC->PHY )
˵Ã÷: URRCÅäÖÃÎïÀí²ãËæ»ú½ÓÈëÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
T_zW_P_prach_sysinfo tPrachSysinfo;
}T_zW_P_add_prach_req;
/*==============================================================================
Ô­ÓP_W_UL_DPCH_SETUP_MODIFY_REQ( URRC->PHY )
˵Ã÷: URRC½¨Á¢ÉÏÐÐרÓÃÎïÀíÐŵÀ ÓÃÓÚ·ÇDCH½¨Á¢µ½DCH¼°DCHÈíÓ²Çл»,
ÒÔ¼°È¡Ïû°éËæDPCH£¬ÉÏÐÐUPA£¬ÏÂÐÐFDPCH¶ÔÓ¦µÄÉÏÐÐDPCCHÅäÖá£
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
/*ÓÐͬƵ£¬ÒìÆµÓ²ÇУ¬DCH̬¿çÖÆÊ½Çл»£¬CCO»ØÍËÅäULDPCHʱ wHandoverConfigReturnFlg==1.ÆäËûÇé¿öwHandoverConfigReturnFlg==0
*/
// WORD wHandoverConfigReturnFlg;
WORD wHandoConfReturBitmap;/*Ó²ÇÐʧ°Ü»ØÍËָʾBITMAP. ´ÓÓÒÏò×óBIT0ÖÃ1±íʾµ±Ç°ÎªÖÆÊ½ÄÚÓ²ÇÐʧ°Ü»ØÍË£¬BIT1ÖÃ1±íʾ¿çÖÆÊ½Çл»Ê§°Ü»ØÍË£¬BIT2ÖÃ1±íʾ¿çÖÆÊ½CCOʧ°Ü»ØÍË*/
WORD wUlFreq;
WORD wDlFreq;
WORD wSpreadingFactor;
DWORD dwUlScrambCode;
WORD wScrambCodeType;
WORD wNumOfDPDCH;/*0±íʾûÓÐÅäÖÃDPDCH,Èç¹ûÈ¡0£¬´ËʱtUlTrchReconfig Ò²ÊÇÎÞЧµÄ¡£½ö½öÅäÖÃULDPCCH**/
WORD wTfciFlg;
WORD wNumOfFbiBits;
/*µ±wTfciExist; wNumFbiBits ¶¼²»´æÔÚʱ£¬wNumTPCBits¿ÉÑ¡´æÔÚ*/
WORD wNumOfTPCBits;
WORD wPunctLimit;/*DPDCH²»Îª0ÊDzÅÓÐЧ*/
WORD wPowerPreambleLen;
WORD wDpcchPowerOff;
WORD wDpcchPowerOffStep;
WORD wPowerControlAlgorithm;
WORD wTpcStepSize;
WORD wMaxTxPower;
T_zW_P_ul_dpch_trch_reconfig tUlTrchReconfig;
}T_zW_P_ul_dpch_setup_modify_req;
/*==============================================================================
Ô­ÓP_W_DL _DPCH_SETUP_MODIFY_REQ( URRC->PHY )
˵Ã÷: URRCÇëÇóÎïÀí²ã½¨Á¢×¨ÓÃÎïÀíÐŵÀ£¨ÓÃÓÚDPDCH¼°DPCCHµÄÅäÖã©
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wSoftHandoverFlg;
WORD wActTime;
/*ʱ¼ä±£³Ö(ÐèҪͬ²½ºÍ²»ÐèҪͬ²½)»¹ÊÇʱ¼äÖØ½¨Ó²ÇÐָʾ ȡֵ·¶Î§£¨0-3£© 0±íʾ³õʼ»¯ 1±íʾ²»ÐèҪͬ²½µÄʱ¼ä±£³ÖÓ²ÇУ¬2±íʾÐèҪͬ²½µÄʱ¼ä±£³ÖÓ²ÇУ¬3±íʾʱ¼äÖØ½¨Ó²ÇС£*/
WORD wTimingIndication;
WORD wDpcMod;
WORD wPowerOffPilotPdpdch;
WORD wSf;
WORD wNumOfPilotBits;
WORD wTfciFlg;
WORD wTrCHFixedFlg;
/*N312,N313,N315*/
WORD wN312;
WORD wN313;
WORD wN315;
WORD wPadding;
DWORD dwDoff;
WORD wPostVerifyPeriodFlg;
WORD wNumOfRl;
T_zW_P_dedicated_rl_params atDedRlParams[Z_W_P_MAX_NO_OF_RL];
T_zW_P_dl_trch_reconfig tDlTrchReconfig;
}T_zW_P_dl_setup_modify_req;
/*==============================================================================
Ô­ÓP_W_DL _FDPCH_SETUP_MODIFY_REQ( URRC->PHY )
˵Ã÷: URRCÇëÇóÎïÀí²ã½¨Á¢²¿·ÖרÓÃÎïÀíÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wSoftHandoverFlg;
WORD wActTime;
/*Enumerated(Initialise,Maintain) 0:Initialise,1:Maintain*/
WORD wTimingIndication;
WORD wDpcMod;
WORD wFdpchTpcErrorRate;
/*N312,N313,N315*/
WORD wN312;
WORD wN313;
WORD wN315;
WORD wPadding;
DWORD dwDoff;
WORD wPostVerifyPeriodFlg;
WORD wNumOfRl;
T_zW_P_fdpch_dedicated_rl_params atFdpchDedRlParams[Z_W_P_MAX_NO_OF_RL];
}T_zW_P_dl_fdpch_setup_modify_req;
/*==============================================================================
Ô­ÓP_W_DPCH_SETUP_MODIFY_CNF( PHY->URRC )
˵Ã÷: ÎïÀí²ã֪ͨURRCÅäÖü¤»îʱ¼äµ½,ÎïÀí²ãÒѾ­ÆôÓÃеÄÅäÖÃ,
´ËʱUURRCÆô¶¯T312¶¨Ê±Æ÷.´ËÏûÏ¢ÓÃÓÚP_DL _DPCH_SETUP_MODIFY_REQºÍ
P_dl_FDPCH_SETUP_MODIFY_REQµÄ·´À¡
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wRlt ;
}T_zW_P_dl_dpch_setup_modify_cnf;
/*==============================================================================
Ô­ÓP_W_IN_SYNC_IND( PHY->URRC )
˵Ã÷: ÎïÀí²ãÔÚ½¨Á¢×¨ÓÃÎïÀíÐŵÀʱ,֪ͨURRCͬ²½³É¹¦£¬ÌØÖ¸Ö÷ƵµãµÄͬ²½
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_in_sync_ind;
/*==============================================================================
Ô­ÓP_W_OUT_SYNC_IND( PHY->URRC )
˵Ã÷: ÎïÀí²ã֪ͨURRCʧ²½£¬ÌØÖ¸Ö÷ƵµãµÄʧ²½
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_out_sync_ind;
/*==============================================================================
Ô­ÓP_W_UL_DPCH_REL_REQ( URRC->PHY )
˵Ã÷: URRCÓÃÓÚÊÍ·ÅÉÏÐÐרÓÃÎïÀíÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zW_P_ul_dpch_rel_req;
/*==============================================================================
Ô­ÓP_W_DL_DPCH_REL_REQ( URRC->PHY )
˵Ã÷: URRCÓÃÓÚÊÍ·ÅÏÂÐÐרÓÃÎïÀíÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zW_P_dl_dpch_rel_req;
/*==============================================================================
Ô­ÓP_W_DPCH_REL_CNF( PHY->URRC )
˵Ã÷: µ×²ãÈ·ÈÏDPCHÐŵÀÊÍ·ÅÍê±Ï()¡£
ÊÇP_ul_DPCH_REL_REQ»òP_dl_DPCH_REL_REQµÄ·´À¡ÏûÏ¢¡£
µ±ÉÏÏÂÐÐDPCHÒ»Æðɾ³ýʱ£¬ÎïÀí²ãÖ»ÐèÒª»Ø¸´Ò»ÌõP_DPCH_REL_CNF
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_dpch_rel_cnf;
/*==============================================================================
Ô­ÓP_W_REL_SCCPCH_REQ( URRC->PHY )
˵Ã÷: URRC ÓÃÓÚÊͷŸ¨¹«¹²ÎïÀíÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zW_P_rel_sccpch_req;
/*==============================================================================
Ô­ÓP_W_REL_SCCPCH_CNF( PHY->URRC )
˵Ã÷: µ×²ãÈ·ÈÏSCCPCHÐŵÀÊÍ·ÅÍê±Ï
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_rel_sccpch_cnf;
/*==============================================================================
Ô­ÓP_W_ADD_MODIFY_SCCPCH_REQ( URRC->PHY )
˵Ã÷: URRC ÓÃÓÚÅäÖø¨¹«¹²ÎïÀíÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wSecScramblCodeFlg;
WORD wSecScramblCode; /*Secondary scrambling code */
WORD wTxDivMode;
WORD wSpreadingFactor;
WORD wSccpchChanCode;
WORD wSccpchChipsOffset;
WORD wPilotExistence;
WORD wTfciFlg;
WORD wTrCHFixedFlg;
T_zW_P_dl_trch_reconfig tDlTrchReconfig;
}T_zW_P_add_modify_sccpch_req;
/*==============================================================================
Ô­ÓP_W_PAGING_REQ( URRC->PHY )
˵Ã÷: URRC ÓÃÓÚÅäÖÃѰºôÐŵÀ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
T_zW_P_add_modify_sccpch_req tAddModifySccpchReq;
T_zW_P_pich_info tPichInfo;
}T_zW_P_paging_req;
/*==============================================================================
Ô­ÓP_W_STOP_PAGING_REQ( URRC->PHY )
˵Ã÷: URRC ÓÃÓÚֹͣѰºô
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_stop_paging_req;
/*==============================================================================
Ô­ÓP_W_STOP_PAGING_CNF( PHY->URRC )
˵Ã÷: µ×²ãÈ·ÈÏÊÍ·ÅѰºôÐŵÀÍê±Ï
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_stop_paging_cnf;
/*==============================================================================
Ô­ÓP_W_ADD_HSDPA_REQ( URRC->PHY )
˵Ã÷: URRC ÓÃÓÚÅäÖÃHSDPAÏà¹ØÐŵÀ£¨ÐèÒªÓëDPCH»òFDPCHÅäÖÃÅäºÏʹÓã©
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime; /*0~255; 256:ÎÞЧ*/
WORD wDtxDrxConfigFlg;
WORD wHsscchLessFlg;
WORD wSecHsdpaInfoFlg;
WORD wMimoParamFlg;/*¶ÔÓ¦atMimoInfo[0]ÖеIJÎÊý*/
WORD wSecCellMimoParaFlg; /*¶ÔÓ¦atMimoInfo[1]ÖеIJÎÊý*/
WORD wMacHdTyp;
T_zW_P_hs_dpcch tHsdpcchConfigInfo;
T_zW_P_hs_harq_info tHsHarqInfo;
T_zW_P_hsscch_less tHsscchLessInfo;
T_zW_P_dtx_drx_config tDtxDrxConfig;
T_zW_P_hsdpa_info tHsdpaInfo;
T_zW_P_sec_hsdpa_info tSecHsdpaInfo;
T_zW_P_mimo_info atMimoInfo[2];
}T_zW_P_hsdpa_config_req;
/*==============================================================================
Ô­ÓP_W_REL_HSDPA_REQ( URRC->PHY )
˵Ã÷: URRCÊÍ·ÅHSDPAÅäÖÃÇëÇó
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zW_P_hsdpa_rel_req;
/*==============================================================================
Ô­ÓP_W_REL_HSDPA_CNF( PHY->URRC )
˵Ã÷: µ×²ãÈ·ÈÏÊÍ·ÅHSDPAÐŵÀÍê±Ï
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_hsdpa_rel_cnf;
/*==============================================================================
Ô­ÓP_W_ADD_HSUPA_REQ( URRC->PHY )
˵Ã÷: URRCÅäÖÃHSUPA
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
WORD wUlfreq;
WORD wMaxTxPower;
WORD wUl16QAMFlg;
WORD wEtfciTableIndex;/* ·Ç16QAMʱȡֵ·¶Î§ÊÇ0µ½1.16QAMʱȡֵ·¶Î§ÊÇ2µ½3*/
WORD wSecEdchFlg;
WORD wPadding;
T_zW_P_edch_info tEdchInfo;
T_zW_P_sec_edch_info tSecEdchInfo;
}T_zW_P_hsupa_config_req;
/*==============================================================================
Ô­ÓP_W_HSUPA_REL_REQ( URRC->PHY )
˵Ã÷: URRCɾ³ýHSUPA×ÊÔ´
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zW_P_hsupa_rel_req;
/*==============================================================================
Ô­ÓP_W_HSUPA_REL_CNF( PHY->URRC )
˵Ã÷: µ×²ãÈ·ÈÏɾ³ýHSUPA×ÊÔ´Íê±Ï
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zW_P_hsupa_rel_cnf;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_FACH_REQ( URRC->PHY )
˵Ã÷: ÅäÖÃL1 FACHºÍIDLE̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ.½áºÏPRACHÅäÖÃÒ»ÆðʹÓÃ.
ÔöÇ¿FACH̬µ±ÏÂÐвÉÓÃDPAÊÇ£¬´ËʱwPlusUpaFlgÖÃ0£¬
ÉÏÐÐÐèÒªP_W_ADD_PRACH_REQÆÕͨRACHÅäÖÃ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wDlFreq;
WORD wPlusUpaFlg;
WORD wPadding;
T_zW_P_fach_dpa_info tFachDpaInfo;
T_zW_P_fach_upa_info tFachUpaInfo;
T_zW_P_hspa_plus_prach_info tPlusPrachInfo;
} T_zW_P_hspa_plus_fach_req;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_PCH_REQ( URRC->PHY )
˵Ã÷: ÅäÖÃL1 PCH̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wDlFreq;
T_zW_P_pch_dpa_info tPchDpaInfo;
T_zW_P_pich_info tPichInfo;
} T_zW_P_hspa_plus_pch_req;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_FACH_REL_REQ( URRC->PHY )
˵Ã÷: ɾ³ýL1 FACHºÍIDLE̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime; /*0~255; 256:Á¢¼´ÆðЧ*/
} T_zW_P_hspa_plus_fach_rel_req;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_PCH_REL_REQ( URRC->PHY )
˵Ã÷: ɾ³ýL1 PCH̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_hspa_plus_pch_rel_req;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_FACH_REL_CNF( PHY->URRC )
˵Ã÷: ÎïÀí²ã»Ø¸´¸øL1TµÄÔöÇ¿FACHÅäÖÃɾ³ýÈ·ÈÏÏûÏ¢
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_hspa_plus_fach_rel_cnf;
/*==============================================================================
Ô­ÓP_W_HSPA_PLUS_PCH_REL_CNF( PHY->URRC )
˵Ã÷: ÎïÀí²ã»Ø¸´¸øL1TµÄÔöÇ¿PCHÅäÖÃɾ³ýÈ·ÈÏÏûÏ¢
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zW_P_hspa_plus_pch_rel_cnf;
/*==============================================================================
Ô­ÓP_W_HSSCCH_ORDER_IND( PHY->URRC )
˵Ã÷: ÎïÀí²ãÊÕµ½HSSCCH ORDERºóÉϱ¨PS
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wHsscchOrderTypeInd;/*ͨ¹ý´Ë±êʶ£¬PHY֪ͨPS£¬¸Õ¸ÕÊÕµ½µÄORDERÖÐЯ´øµÄÀàÐÍ£¬¸ÃÀàÐ͵碌îÈ¥»îÐèÒª¸ù¾ÝwHsscchOrderTypeÏàӦλÅжϡ£*/
WORD wHsscchOrderType;
WORD wPadding;
}T_zW_P_Hscch_Order_Ind;
/*wHsscchOrderTypeInd ±íʾµ±Ç°ÊÕµ½ÁËÄÄЩORDERµÄÀàÐÍ¡£ÓëwHsscchOrderTypeÖеÄÀàÐÍÒ»Ò»¶ÔÓ¦¡£
´ÓÓÒÏò×ó£¬Ã¿¸öBIT·Ö±ð±íʾHSDSCH·þÎñ±ä¸ü£¬EPCHʱÔÚHS_SCCHÉÏÊÕµ½HRNTI,LESS£¬µÚ¶þƵµãDPA£¬µÚ¶þƵµãUPAÇé¿ö£¬ÏàӦλ ÖÃÒ»±íʾÊÕµ½ÁËÏàÓ¦ÀàÐ͵ÄORDER,¡£
µÚ0±ÈÌØ£º1±íʾ¸ÕÊÕµ½HSDSCH·þÎñÐ¡Çø¸ü¸ÄµÄORDER £»
µÚ1±ÈÌØ£»1±íʾ¸ÕÊÕµ½EPCHʱÔÚHS_SCCHÉÏÊÕµ½HRNTIµÄORDER
µÚ2±ÈÌØ£º1±íʾ¸ÕÊÕµ½DTXÏà¹ØORDER
µÚ3±ÈÌØ£º1±íʾ¸ÕÊÕµ½µÄÊÇDRX Ïà¹ØORDER
µÚ4±ÈÌØ£º1±íʾ¸Õ¸ÕÊÕµ½µÄÊÇHS_SCCH_LESSÏà¹ØµÄORDER
µÚ5±ÈÌØ£º1±íʾ¸Õ¸ÕÊÕµ½µÄÊǵÚ2ƵµãÏÂÐÐDPAÏà¹ØµÄORDER
µÚ6±ÈÌØ£º1±íʾ¸Õ¸ÕÊÕµ½µÄÊǵÚ2ƵµãÉÏÐÐUPAÏà¹ØµÄORDER
*/
/*
wHsscchOrderType´ÓÓÒÏò×ó£¬Ã¿¸öBIT·Ö±ð±íʾHSDSCH·þÎñ±ä¸ü£¬EPCHʱÔÚHS_SCCHÉÏÊÕµ½HRNTI,LESSµÄ¼¤»îÈ¥»î£¬µÚ¶þƵµãDPA¼¤»îÈ¥»î£¬µÚ¶þƵµãUPAµÄ¼¤»îÈ¥»îÇé¿ö
µÚ0±ÈÌØ£º0±íʾHSDSCH·þÎñÐ¡Çø¸ü¸Ä,1±íʾδÊÕµ½HSDSCH·þÎñÐ¡Çø¸ü¸Ä. £»
µÚ1±ÈÌØ£»1±íʾEPCHʱÔÚHS_SCCHÉÏÊÕµ½HRNTI
µÚ2±ÈÌØ£º0±íʾȥ»îDTX£¬1±íʾ¼¤»îDTX
µÚ3±ÈÌØ£º0±íʾȥ»îDRX£¬1±íʾ¼¤»îDRX
µÚ4±ÈÌØ£º0±íʾȥ»îHS_SCCH_LESS£¬ 1±íʾ¼¤»îHS_SCCH_LESS
µÚ5±ÈÌØ£º0±íʾȥ»îµÚ2ƵµãÏÂÐÐDPA£¬1±íʾ¼¤»îµÚ2ƵµãÏÂÐÐDPA
µÚ6±ÈÌØ£º0±íʾȥ»îµÚ2ƵµãÉÏÐÐUPA£¬1±íʾ¼¤»îµÚ2ƵµãÉÏÐÐUPA
*/
/*==============================================================================
Ô­ÓP_W_NERBERCELL_HSSCCH_ORDER_REQ( URRC->PHY )
˵Ã÷: ÇëÇóÎïÀí²ã¶Áȡָ¶¨Ð¡ÇøµÄHSSCCH ORDER.ÏìÓ¦ÏûÏ¢ÊÇP_Hscch_Order_Ind.
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPriSrc;
WORD wMonitorTimeLen;
WORD wPadding;
T_zW_P_hs_scch tHsscchConfigInfo;
}T_zW_P_Hscch_Order_Req;
/*==============================================================================
Ô­ÓP_W_NERBERCELL_HSSCCH_ORDER_ABORT_REQ( URRC->PHY )
˵Ã÷: ÇëÇóÎïÀí²ãÈ¡Ïû¶Áȡָ¶¨Ð¡ÇøµÄHSSCCH ORDER.
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPaddng;
}T_zW_P_Hscch_Order_Abort_Req;
/*==============================================================================
Ô­ÓW_P_EFACH_UPDATE_RNTI_REQ( URRC->PHY )
˵Ã÷: ֪ͨÎïÀí²ã¸üÐÂרÓõÄHRNTI»òERNTI
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wActTime;/*0~255; 256:Á¢¼´ÆðЧ*/
WORD wUpdateType;/*1£ºÖ»¸üÐÂH-RNTI£»2£ºÖ»¸üÐÂE-RNTI£»3£º¸üÐÂH-RNTIºÍE-RNTI;*/
WORD wHrnti;
WORD wPriErnti; /*רÓÃÖ÷ERNTI*/
WORD wPadding;
}T_zW_P_efach_update_rnti_req;
/*==============================================================================
* RBCÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå -------end *
==============================================================================*/
/*==============================================================================
* MCRÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå --------start *
==============================================================================*/
/*==============================================================================
RRC<->PHY
¹¦ÄÜ:
RRCºÍPHY²ã¼äµÄͬƵ²âÁ¿ÅäÖýӿÚ
½á¹¹:
ͬƵ²âÁ¿ÅäÖÃÏûÏ¢ W_P_INTRA_FREQ_MEAS_REQ
ͬƵ²âÁ¿½á¹ûÏûÏ¢ W_P_INTRA_FREQ_MEAS_IND
==============================================================================*/
typedef struct {
WORD wCellId;
WORD wPrimSrc;
WORD wChipAccuracy;
WORD wRefTimeDiff;
WORD wTxDivInd;
WORD wSynInforNeed;
}T_zW_P_cell_info;
typedef struct {
WORD wCellNum;
WORD wUarfcn;
T_zW_P_cell_info atMeasCellInfo[Z_W_P_MAX_CELL_NUM];
}T_zW_P_freq_meas_info;
typedef struct {
WORD wUarfcn;
WORD wCellNum;
WORD awPrimSrc[Z_W_P_MAX_CELL_NUM];
}T_zW_P_freq_not_meas_info;
typedef struct {
WORD wMsgId;
WORD wDetectedSetQuantity;
WORD wMeasFreqNum;
WORD wNotMeasFreqNum;
DWORD dwMeasId;
T_zW_P_freq_meas_info atIntraFreqMeasInfo[Z_W_P_MAX_INTRAFREQ_NUM];
T_zW_P_freq_not_meas_info atNotMeasFreqInfo[Z_W_P_MAX_INTRAFREQ_NUM];
}T_zW_P_intra_freq_meas_req;
typedef struct {
WORD wCellId;
WORD wPrimSrc;
WORD wSfnFlag:1;
WORD wCpichRscp:8;
WORD wCpichEcNo:7;
WORD wSfn;
WORD wOff;
WORD wTm;
} T_zW_P_cell_meas_rlt;
typedef struct{
WORD wUarfcn;
WORD wCellNum:8;
WORD wRssi:8;
T_zW_P_cell_meas_rlt atCellMeasRlt[Z_W_P_MAX_CELL_NUM];
} T_zW_P_freq_meas_rlt;
typedef struct {
WORD wMsgId;
WORD wFreqNum;
DWORD dwMeasId;
T_zW_P_freq_meas_rlt atIntraFreqMeasRlt[Z_W_P_MAX_INTRAFREQ_NUM];
}T_zW_P_intra_freq_meas_ind;
/*==============================================================================
RRC<->PHY
¹¦ÄÜ:
RRCºÍPHY²ã¼äµÄÒìÆµ²âÁ¿ÅäÖýӿÚ
½á¹¹:
ÒìÆµ²âÁ¿ÅäÖÃÏûÏ¢ W_P_INTER_FREQ_MEAS_REQ
==============================================================================*/
typedef struct{
WORD wUarfcn;
WORD wCearchCellFlg; /*1±íʾ¸ÃƵµã²»½ö²âÁ¿RSSI»¹ÐèÒª½øÐÐÐ¡ÇøËÑË÷£¬²¢½øÐÐÐ¡Çø²âÁ¿½á¹ûÉϱ¨¡£0±íʾ¸ÃƵµã½ö²âÁ¿RSSI*/
}T_zW_P_Blind_freq_meas_req;
typedef struct {
WORD wMsgId;
WORD wFreqNum;
WORD wBlindFreqNum;
WORD wLbsFlag;
DWORD dwTmeasInial;
DWORD dwTmeas;
DWORD dwMeasId;
T_zW_P_freq_meas_info atInterFreqMeasInfo[Z_W_P_MAX_INTERFREQ_NUM]; /*wFreqNumÊýĿָʾ*/
T_zW_P_Blind_freq_meas_req atBlindFreq[Z_W_P_MAX_BLIND_INTERFREQ_NUM]; /*wBlindFreqNumÊýĿָʾ*/
}T_zW_P_inter_freq_meas_req;
/*==============================================================================
RRC<->PHY
¹¦ÄÜ:
RRCºÍPHY²ã¼äµÄÒìÆµ²âÁ¿ÅäÖýӿÚ
½á¹¹:
ÒìÆµ²âÁ¿½á¹ûÏûÏ¢ W_P_INTER_FREQ_MEAS_IND
==============================================================================*/
typedef struct
{
WORD wPrimSrc;
WORD wCpichRscp;
WORD wCpichEcNo;
WORD wPadding;
}T_zW_blind_cell_rlt;
typedef struct
{
WORD wUarfcn;
WORD wRssi;
WORD wCellNum; /* ¸ÃƵµãÏÂä²âÁ¿µÄÐ¡Çø¸öÊý */
WORD wPadding;
T_zW_blind_cell_rlt atBlindCellRlt[Z_W_P_MAX_BLIND_INTERFREQ_CELL_NUM];
}T_zW_blind_uarfcn_rlt;
typedef struct{
WORD wMsgId;
WORD wInterFreqNum;
WORD wBlindFreqNum;
WORD wRptFlg; /*0:ÖÜÆÚÉϱ¨ 1:ÌáǰÉϱ¨*/
DWORD dwMeasId;
T_zW_P_freq_meas_rlt atInterFreqMeasRlt[Z_W_P_MAX_INTERFREQ_NUM];
T_zW_blind_uarfcn_rlt atBlindFreqRlt[Z_W_P_MAX_BLIND_INTERFREQ_NUM];
}T_zW_P_inter_freq_meas_ind;
/*==============================================================================
PHY->RRC
¹¦ÄÜ:
RHYÏòRRC·¢ËÍ·þÎñÐ¡Çø²âÁ¿½á¹ûÉϱ¨
½á¹¹:
·þÎñÐ¡Çø²âÁ¿½á¹ûÉϱ¨ÏûÏ¢ W_P_SERVCELL_MEAS_IND
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wPrimSrc;
WORD wCpichRscp;
WORD wCpichEcNo;
DWORD dwMeasId;
WORD wRssi; //·þÎñƵµãRSSIÖµ£¬È¡Öµ·¶Î§:0~76£¬¶ÔÓ¦-25dBm~-100dBm
WORD wPadding;
}T_zW_P_servcell_meas_ind;
/*==============================================================================
RRC<->PHY
¹¦ÄÜ:
RRCºÍPHY²ã¼äµÄUEÄÚ²¿²âÁ¿ÅäÖýӿÚ
½á¹¹:
UEÄÚ²¿²âÁ¿ÇëÇóÏûÏ¢ W_P_UE_INTERNAL_MEAS_REQ
UEÄÚ²¿²âÁ¿½á¹ûÉϱ¨ W_P_UE_INTERNAL_MEAS_IND
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wPadding;
WORD wRepInterval;
WORD wTxPowerNeed:1;
WORD wRxTxNeed:1;
WORD wRssiNeed:1;
WORD :13;
DWORD dwMeasId;
}T_zW_P_ueinternal_meas_req;
typedef struct {
WORD wPrimSrc;
WORD wRxTxTimeDiff;
}T_zW_P_rxtx_time_diff_rlt;
typedef struct {
WORD wMsgId;
WORD wPadding;
WORD wTxPowerFlag:1;
WORD wRssiFlag:1;
WORD :14;
WORD wTxPower;
WORD wRssi;
WORD wNumOfRxTxResults;
DWORD dwMeasId;
T_zW_P_rxtx_time_diff_rlt atRxTxTimeDiffRlt[Z_W_P_MAX_NO_OF_RL];
}T_zW_P_ueinternal_meas_ind;
/*==============================================================================
RRC->PHY
¹¦ÄÜ:
RRCÏòPHY·¢Ë͵IJâÁ¿É¾³ýָʾ
½á¹¹:
²âÁ¿ÊÍ·ÅÏûÏ¢ W_P_MEAS_REL_REQ_EV
wMeasTypes±àÂ룺ÏàÓ¦bitλÖÃ1±íʾÊÍ·Å´ËÀàÐͲâÁ¿£»·ñÔò²»ÊÍ·Å
bit0: ServCellMeas
bit1: IntraFreq
bit2: InterFreq
bit3£ºUeInterMeas
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wMeasTypes;
}T_zW_P_meas_rel_req;
/*==============================================================================
RRC->PHY
¹¦ÄÜ:
Fach̬ϲâÁ¿Ê±»úÅäÖÃ
½á¹¹:
FMOÐÅÏ¢ÅäÖà W_P_FMO_INFO_REQ
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wFMONeed; /*ָʾÊÇ·ñʹÓÃFMO¡£0±íʾȡÏûFMO£¬·Ç0Öµ±íʾÅäÖÃFMO*/
WORD wTtiPeriod; /*=M_REP, measurement occasion cycle length */
WORD wTtiOffset; /*=C_rnti RNTImod M_REP*/
}T_zW_P_fmo_req;
/*==============================================================================
RRC->PHY
¹¦ÄÜ:
Dch̬ÏÂѹËõģʽÐÅÏ¢ÅäÖÃ
½á¹¹:
ѹËõģʽÐÅÏ¢ÅäÖà W_P_COMPRESS_MODE_REQ
==============================================================================*/
typedef struct {
WORD wCompressedModeUsage; /*ÓÃÓÚÉÏÐУ¬ÏÂÐл¹ÊÇÉÏÏÂÐÐ*/
WORD wDlCompModeMethod;
WORD wUlCompModeMethod;
WORD wDlFrameType; /*Ö¡ÀàÐÍA OR B*/
WORD wRpp; /* Recovery Period Power control mode during the frame after the transmission gap within the compressed frame ģʽ0»¹ÊÇģʽ1*/
WORD wItp;/* nitial Transmit Power is the uplink power control method to be used to compute the initial transmit power after the compressed mode gapģʽ0»¹ÊÇģʽ1*/
WORD wDeltaSir1;/*ÏÂÐÐSIRµ÷ÕûÖµ*/
WORD wDeltaSirAfter1;
WORD wDeltaSir2; /*Real(0..3 by step of 0.1),À©´ó10±¶*/
WORD wDeltaSirAfter2;
}T_zW_P_static_info;
typedef struct {
WORD wTgpsi; /*gap ID 1-6 */
WORD wActiveFlg; /*1=¼¤»î£»0=È¥»î*/
WORD wMeasPurpose; /*1=ÒìÆµ £¬2=RAT*/
WORD wTgsn; /*Æðʼʱ϶ºÅ*/
WORD wTgprc; /*´«Êä¼ä¸ôÖØ¸´´ÎÊý, 0xFFFF±íʾÎÞÏÞ´ÎÊý*/
WORD wTgcfn; /*´«Êä¼ä¸ôÁ¬½ÓÖ¡ºÅ£¬ÊǵÚһģʽµÄµÚÒ»¸öÎÞÏßÖ¡µÄCFN*/
WORD wTgl1; /*µÚÒ»¸öGAPµÄ³¤¶È£¬Ê±Ï¶Êý*/
WORD wTgl2; /*µÚ¶þ¸öGAPµÄ³¤¶È*/
WORD wTgpl; /*´«Êä¼ä¸ô³¤¶È£¬Ö¡Êý*/
WORD wTgd; /*Á½¸öGAPÆðʼµãµÄ¾àÀ룬ʱ϶Êý£¬0xFFFF±íÃ÷GapÄ£ÐÍÖв»´æÔÚµÚ¶þ¸öGap*/
T_zW_P_static_info tCmStaicInfo;
}T_zW_P_compress_gap_pattern;
typedef struct {
WORD wMsgId;
WORD wCmPatternNum;
WORD wActTime; /*ȡֵ·¶Î§0-255£¬256£¬ÆäÖÐ256±íʾÁ¢¼´¼¤»î*/
WORD wCmCellInfoFlg; /*ȡֵ0»ò1£¬±íʾÊÇ·ñЯ´øÁËÐ¡ÇøÐÅÏ¢wDlUarfcnºÍwPrimSrc. ȡֵ1ʱwDlUarfcnºÍwPrimSrcÓÐЧ£¬·ñÔòÎÞЧ*/
WORD wDlUarfcn;
WORD wPrimSrc;
T_zW_P_compress_gap_pattern atCopressModePattern[Z_W_P_MAX_CM_NUM];
}T_zW_P_compress_mode_req;
/*==============================================================================
L1W->PHY
¹¦ÄÜ:
FDDΪ¸¨Ä£Ê½Ï£¬ÊÕµ½µÄGAPÅäÖÃW_P_IRATGAPCONFIG_REQ
½á¹¹:
GAPÇëÇóÐÅÏ¢ W_P_IRATGAPCONFIG_REQ
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wIdleOrConnectFlg;/*FDDΪ¸¨ÖÆÊ½Ê±Ö÷ÖÆÊ½µÄ״̬£¬È¡ÖµÎª0±íʾ¿ÕÏÐ̬ȡֵΪ1±íʾÁ¬½Ó̬*/
WORD wStartSfn;/*GAPÆðʼµãÖ¡ºÅ,ȡֵ·¶Î§ 0--4096*/
WORD wStartOffChip; /*GAPÆðʼµã.CHIPÆ«ÒÆ£¨chips£©,ÕæÕýµÄGAPÆðʼµãÊÇwStartSfn+wStartOffChip*/
DWORD dwLength;/* GAPÄ£ÐͳÖÐøÊ±¼ä,µ¥Î»ÊÇ£¨chips£©*/
}T_zW_P_irat_gap_config_req;
/*==============================================================================
L1W<->PHY
¹¦ÄÜ:
L1WºÍPHY²ã¼äµÄABORT GAPÅäÖýӿÚ
½á¹¹:
ÇëÇóÎïÀí²ãֹͣʹÓÃGAPÏûÏ¢ W_P_ABORT_IRAT_GAP_REQ
ÎïÀí²ã²»ÔÚʹÓÃGAPµÄÈ·ÈÏ W_P_ABORT_IRAT_GAP_CNF
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_irat_gap_req;
typedef struct {
WORD wMsgId;
WORD wPadding;
}T_zW_P_abort_irat_gap_cnf;
/*==============================================================================
PHY->L1W
¹¦ÄÜ:
ÎïÀí²ãÉϱ¨gapʱ¼äÐÅÏ¢
½á¹¹:
ÎïÀí²ãÉϱ¨GAPʱ¼äÐÅÏ¢ÏûÏ¢ W_P_INACTIVE_TIME_IND
==============================================================================*/
typedef struct {
WORD wStartRtFrame; /*GAPÆðʼµãÖ¡ºÅ,ȡֵ·¶Î§0-255£¬ÓÉÎïÀí²ãRTʱ»úÄ£256µÃµ½*/
WORD wStartChipOff; /*GAPÆðʼµãÏà¶ÔÓÚwStartCfnµÄCHIPÆ«ÒÆ*/
DWORD dwLengthChip; /*GAP³¤¶È*/
}T_zW_P_gap_info;
typedef struct {
WORD wMsgId;
WORD wSeqNum;
WORD wGapNum;
WORD Wpadding;
T_zW_P_gap_info atGapInfo[Z_W_P_MAX_FRAME_GAP_NUM];
}T_zW_P_inact_time_ind;
/*==============================================================================
L1W->PHY
¹¦ÄÜ:
ÅäÖÃL1ÊÇ·ñÉϱ¨Æägapʱ¼ä£¬ÓÃÀ´½øÐÐ2G/LTEÐ¡ÇøµÄ¹¤×÷
½á¹¹:
ÅäÖÃL1ÊÇ·ñÉϱ¨Æägapʱ¼äÏûÏ¢ W_P_IDLE_PERIOD_REPMODE_REQ
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wReportingMode; /*0: not reprot gap, 1:report gap*/
WORD wSeqNum;
WORD wPadding;
}T_zW_P_idle_period_repmode_req;
/*==============================================================================
* ²âÁ¿È«¾ÖÊý¾ÝÀàÐͶ¨Òå --------end *
==============================================================================*/
/*==============================================================================
* Êý¾ÝÃæÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå start *
==============================================================================*/
/*==============================================================================
ÏûÏ¢£ºP_RACH_PROCEDURE_REQ_EV( WMAC->PHY )
˵Ã÷: MACÏ·¢Ëæ»ú½ÓÈëÇëÇó¸øÎïÀí²ã
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wSignatureBitmap; /*¿ÉÓÃÇ©Ãûbitmap(16λ), BIT0ָʾµÚÒ»¸ö£¬BIT15ָʾ×îºóÒ»¸ö£¬ÓÒ±ßÊÇ×îµÍλ*/
WORD wSubchannelBitmap; /*¿ÉÓÃ×ÓÐŵÀbitmap(12λ), BIT0ָʾµÚÒ»¸ö£¬BIT11ָʾ×îºóÒ»¸ö£¬ÓÒ±ßÊÇ×îµÍλ*/
WORD wLastFlag; /*ָʾMACµÄRACH½ÓÈë¹ý³ÌÖд˴ÎÊÇ·ñÒÑΪµÚMmax´Î£¬¼´×îºóÒ»´Î£¨0~1£©*/
}T_zW_P_rach_procedure_req;
/*==============================================================================
ÏûÏ¢£ºP_RACH_PROCEDURE_IND_EV( PHY->WMAC )
˵Ã÷: ÎïÀí²ã»Ø¸´Ëæ»ú½ÓÈë³É¹¦
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wResult; /*RACH ACCESS½á¹û£¨0~2£©£»0£ºACK£¬1£ºNACK£¬2£ºNO ACK*/
}T_zW_P_rach_procedure_ind;
/*==============================================================================
ÏûÏ¢£ºP_POST_VERFY_FAIL_IND_EV( PHY->WMAC )
˵Ã÷: ÔÚÓ²ÇÐL1ͬ²½A¹ý³Ìʱ£¬Èç¹û²ÉÓÃPostverfy£¬ÇÒÖ÷ÉÏÐÐÆµÂÊÉϵÄpost verfyʧ°ÜʱÎïÀí²ãÉϱ¨Ê§°Üָʾ
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wPadding;
} T_zW_P_post_verfy_fail_ind;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_upa_grant_harq_info( PHY->WMAC )
˵Ã÷: Ö¡ÖжÏÖÐÎïÀí²ãЯ´øµÄÊÚȨ¼°HARQÐÅÏ¢
==============================================================================*/
typedef struct {
WORD wHarqId; /*¶ÔÓ¦½ø³ÌID£¨0~7£©*/
WORD wStatus; /*¶ÔÓ¦½ø³ÌHARQ·´À¡½á¹û£¬0£ºACK£¬ 1£ºNACK */
WORD wServCellStatus; /*·þÎñÐ¡ÇøÉÏָʾµÄHARQ·´À¡½á¹û£¬0£ºACK£¬ 1£ºNACK*/
WORD wPadding;
}T_zW_P_harq_process_status;
typedef struct {
WORD wCycle2Flag; /*¸Ã±êʶÓÃÓÚ֪ͨPSÊÇ·ñ ¿ªÊ¼ÓÉCycle1½øÈëCycle2 £º0£ºÃ»ÓнøÈ룬1£ºÓÉcycle1½øÈëCycle2 .¸Ã±ê¼ÇÖ»Óе±ÎïÀí²ã´Ócycle1½øÈëcycle2ʱÖÃλΪ1£¬Í¨ÖªPS½øÈëCycle2£¬ÆäËûCycle1¼°Cycle2ÆÚ¼äµÄÉϱ¨µÄ¸Ã±ê¼Ç¾ùΪ0.*/
WORD wAGFlag; /*ÊÇ·ñЯ´øAGÐÅÏ¢£¨0~1£©*/
WORD wAGIndex; /*ÊÚȨֵË÷Òý£¨0~31£©£¬µ±wAGFlagΪ1ʱÓÐЧ*/
WORD wAGTypeAndScope; /*IDÀàÐͺͷ¶Î§ÐÅÏ¢£¨0~2£©£»0:Primary ID&PerHARQ, 1:Primary ID&AllHARQ, 2:Secondary ID£¬µ±wAGFlagΪ1ʱÓÐЧ*/
WORD wPadding;
WORD wRGNum; /*ָʾ·þÎñRGºÍ·Ç·þÎñRGµÄ¸öÊý£¨0~4£©£»*/
WORD awRGValue[Z_W_P_MAX_RG_NUM]; /*RGÊý×飨0~3£©£¬0±íʾÎÞЧ£¬1±íʾ"UP"£¬2±íʾ"DOWN"£¬3±íʾ"HOLD"£¬ÆäÖеÚÒ»¸öĬÈÏÌîд·þÎñRGµÄÖµ*/
}T_zW_P_hsupa_grant_info;
typedef struct {
WORD wHarqBitmap; /*ָʾÊÇ·ñЯ´øHARQ½ø³ÌÐÅÏ¢£¨bitmap£©£»BIT0£¨LSB£©£º¶ÔÓ¦Ö÷Ƶµã£¬BIT1¶ÔÓ¦¸¨Æµµã*/
WORD wGrantBitmap; /*ָʾÊÇ·ñЯ´øÊÚȨÐÅÏ¢£¨bitmap£©£»BIT0£¨LSB£©£º¶ÔÓ¦Ö÷Ƶµã£¬BIT1¶ÔÓ¦¸¨Æµµã*/
T_zW_P_harq_process_status tHarq[Z_W_P_MAX_UL_FREQUENCY_NUM];
T_zW_P_hsupa_grant_info tGrant[Z_W_P_MAX_UL_FREQUENCY_NUM];
}T_zW_P_upa_grant_harq_info;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_grant_monitor_req( WMAC->PHY )
˵Ã÷: ָʾµ±Ç°TTIÊÇ·ñÂú×ãmonitorÌõ¼þ,ÎïÀí²ã´Ó¹Ì¶¨»º´æÄÚ¶ÁÈ¡
==============================================================================*/
typedef struct {
WORD wFreqId; /*ÔØ²¨ÐÅÏ¢£¬0±íʾµÚÒ»¸öÔØ²¨£¬1±íʾµÚ¶þ¸öÔØ²¨*/
WORD wActMonitor; /*ָʾÊÇ·ñÂú×ãMonitorÌõ¼þ£¬0£º²»Âú×㣬1£ºÂú×ã*/
}T_zW_P_grant_monitor_req;
/*==============================================================================
ÏûÏ¢£ºP_EFACH_NO_DATA_REQ_EV( WMAC->PHY )
˵Ã÷: EFACHÏÂmacÎÞÊý¾Ý·¢ËÍʱ£¬Í¨ÖªÎïÀí²ãÎÞÊý¾Ý£¬ÎïÀí²ãÆôT321¶¨Ê±Æ÷
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wPadding;
}T_zW_P_efach_no_data_req;
/*==============================================================================
ÏûÏ¢£ºW_P_ MAC_DTX_CYCLE_INFO_REQ_EV( WMAC->PHY )
˵Ã÷: DCH̬MAC½øÈëMAC_DTXºó֪ͨÎïÀí²ãÖÜÆÚÄ£ÐÍ£¬ÒÔ±ãÎïÀí²ãÔÚEDCHÊý¾Ýǰ×î¶àÌáǰһ֡·¢DPCCH preamble
==============================================================================*/
typedef struct {
WORD wMsgId;
WORD wMacDtxInfoFlg;/*ȡֵ0»ò1£¬È¡ÖµÎª1ʱ£¬±íʾMAC_DTXcycle ÓÐЧ£¬È¡ÖµÎª0ʱÎÞЧ£¬¼´Í˳öMAC_DTX*/
WORD wMacDtxStartCfn;/*MAC_DRX cycleµÄÆðʼ֡ºÅ*/
WORD wMacDtxStartSubCfn;/*MAC_DRX cycleµÄÆðʼ×ÓÖ¡ºÅ*/
WORD wMacDtxCycle;/*MAC_DRX cycleµÄÖÜÆÚ³¤¶È*/
WORD wPadding;
} T_zW_P_mac_dtx_cycle_info;
/*==============================================================================
ÏûÏ¢£ºW_P_TFCI_CM_INFO_IND_EV( PHY->WMAC )
˵Ã÷: ÿ´ÎÉÏÐÐDPCHÖØÅäÖÃʱ,ÎïÀí²ã±¨¸æ7×éTFCSÖиöTFCIµÄÖ§³ÖÇé¿ö Ntr=[8,14]ʱ
==============================================================================*/
typedef struct {
WORD awSupFlag[Z_W_P_MAX_UL_TFC_NUM]; // Z_W_P_MAX_UL_TFC_NUM = 64, Êý×éϱê±íʾtfci£¬ÔªËØÄÚÈݱíʾ¸ÃTFCIÊÇ·ñÖ§³Ö£¬1-Ö§³Ö£¬0-²»Ö§³Ö¡£
} T_zW_P_tfci_sup_Info;
typedef struct {
WORD wMsgId;
WORD wPadding;
T_zW_P_tfci_sup_Info atTfciSupInfo[Z_W_P_MAX_NTR_NUM];// Ntr-8¶ÔÓ¦Êý×éϱê
} T_zW_P_tfci_cm_Info;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_ul_data_buffer( WMAC->PHY )
˵Ã÷: ÉÏÐÐÊý¾Ý½Ó¿Ú( ·ÇUPA )
==============================================================================*/
typedef struct {
DWORD dwTrchBuffOff; /*¸÷´«ÊäÐŵÀÊý¾ÝÔÚÊý×éÖжÔÓ¦µÄÆ«ÒÆ£¬ÒÔWORDΪµ¥Î»£¨0~583£©*/
WORD wTbNumAndTrchId; /*´«ÊäÐŵÀidºÍ¶ÔÓ¦µÄtb¿é¸öÊý£¬¸ß8λ¶ÔÓ¦Trch Id£¬µÍ8λ¶ÔÓ¦Tb num*/
WORD wTbSize; /*TB¿é´óС£¬µ¥Î»bit*/
}T_zW_P_ul_trch_header;
typedef struct {
WORD wTotalLength; /*Êý¾Ý×ܹ²Õ¼ÓõÄWORDÊý£¨0~584£©*/
WORD wNumOfTrch; /*´«ÊäÐŵÀ¸öÊý£¨1~8£©*/
WORD wTfci; /*Ñ¡ÔñµÄTfci£¨0~63£©*/
WORD wPadding;
T_zW_P_ul_trch_header atUlTrchHeader[Z_W_P_MAX_UL_TRCH_NUM];
WORD awUlData[Z_W_P_MAX_NO_OF_UL_BYTES/2];
}T_zW_P_ul_data_buffer;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_dl_data_buffer( PHY->WMAC )
˵Ã÷: ÏÂÐÐÊý¾Ý½Ó¿Ú( ·ÇDPA )
==============================================================================*/
typedef struct {
DWORD dwTrchBuffOff; /*¸÷´«ÊäÐŵÀÊý¾ÝÔÚÊý×éÖжÔÓ¦µÄÆ«ÒÆ£¬ÒÔWORDΪµ¥Î»£¨0~583£©*/
WORD wTrchId; /*´«ÊäÐŵÀid £¨1~8£©*/
WORD wTrchType; /*´«ÊäÐŵÀÀàÐÍ£¨0~4£©,¼ûºê¶¨Òå*/
WORD wCfnAndTbNum; /*Êý¾Ý·¢ËÍʱµÄCfnºÍTb¿é¸öÊý£¬¸ß8λΪTb num£¬µÍ8λΪCfn*/
WORD wSfn; /*Êý¾Ý·¢ËÍʱµÄϵͳ֡ºÅ£¨0~4095£©*/
WORD wTbSize; /*TB¿é´óС£¬µ¥Î»bit*/
WORD wPadding;
DWORD dwCrcCheck; /*CRC½á¹û bitmap*/
}T_zW_P_dl_trch_header;
typedef struct {
WORD wTotalLength; /*Êý¾Ý×ܹ²Õ¼ÓõÄWORDÊý£¨0~584£©*/
WORD wNumOfTrch; /*´«ÊäÐŵÀ¸öÊý£¨1~8£©*/
WORD wTfci; /*Ñ¡ÔñµÄTfci£¨0~127£©*/
WORD wPadding;
T_zW_P_dl_trch_header atDlTrchHeader[Z_W_P_MAX_DL_TRCH_NUM];
WORD awDlData[Z_W_P_MAX_NO_OF_DL_BYTES/2];
}T_zW_P_dl_data_buffer;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_hsupa_buffer( WMAC->PHY )
˵Ã÷: ÉÏÐÐÊý¾Ý½Ó¿Ú( UPA )
==============================================================================*/
typedef struct {
WORD wL; /*±íʾʹÓøÃE-TFCËùÓеÄE-DPDCHs£¬È¡Öµ·¶Î§(1~4)*/
WORD wBetaEc; /*ȡֵ·¶Î§5~239¡£*/
WORD awBetaEd[4]; /*wL¸öÖµ£¬È¡Öµ·¶Î§5~377*/
WORD wSf; /*µÚÒ»ÌõE-dpdchµÄSF.ȡֵ·¶Î§0--512*/
WORD wPadding;
}T_zW_p_etfc_gain_factor;
typedef struct {
WORD wCfn; /*Á¬½ÓÖ¡ºÅ0--255*/
WORD wSubFrameNum; /*×ÓÖ¡ºÅ0--4*/
}T_zW_P_upa_trans_frame_num;
typedef struct {
WORD wNej;
WORD wNdataJ;
}T_zW_P_etfc_rm_info;
typedef struct {
WORD wFreqId; /*ָʾµ±Ç°ÊÇÄǸöÔØ²¨¶ÔÓ¦µÄÉÏÐÐÊý¾Ý£¬0±íʾµÚÒ»¸öÔØ²¨£¬1±íʾµÚ¶þ¸öÔØ²¨*/
WORD wErnti; /*´ËÊý¾Ý°ü¶ÔÓ¦µÄERNTI*/
WORD wHarqId; /*HARQ½ø³ÌID£¨0~7£©*/
WORD wEtfci; /*Ñ¡ÔñµÄEtfci£¨0~127£©*/
T_zW_p_etfc_gain_factor tEtfcGainFactor;
T_zW_P_etfc_rm_info tEtfcRmInfo;
WORD wTbSize; /*¶ÔÓ¦TB¿é´óСbits£¨18~22995£©*/
WORD wRsn; /*Tb¿é¶ÔÓ¦RSN£¨0~3£©*/
WORD wHappyBit; /*Happy Bitָʾ£¨0~1£©*/
WORD wSchDataFg; /*ָʾµ±Ç°ÊÇ·ñÊǵ÷¶ÈÊý¾Ý£¨0~1£©*/
T_zW_P_upa_trans_frame_num tUpaTransFrameNum;
// WORD awHsupaData[Z_W_P_MAX_NO_OF_HSUPA_BYTES/2]; /*UPAÊý¾ÝÍ·ÐÅÏ¢·ÅÈë¹²ÏíRAM£¬UPAÊý¾ÝÐÅÏ¢Ö±½Ó°áÖÁÎïÀí²ãÓ²¼þ¼ÓËÙÆ÷E-UTR RAM*/
}T_zW_P_hsupa_buffer;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_hsdpa_buffer( PHY->WMAC )
˵Ã÷: ÏÂÐÐÊý¾Ý½Ó¿Ú( DPA )
==============================================================================*/
typedef struct {
WORD wTbSize; /*Tb¿é´óСbit£¨120~27952£©*/
WORD wDataType; /*ָʾ½ÓÊÕµÄÊý¾Ý¿éÀàÐÍ£¬0£ºÆäËû 1£ºPCCH 2£ºBCCH£»
ÔÚEPCH̬»òEFACH̬ʹÓÃBCCH RNTI½âÂëʱ£¬Ôò¶ÔÓ¦wDataTypeÌîдBCCH£»
ÔÚEPCH̬²»Ê¹ÓÃBCCH RNTI½âÂëʱ£¬¶ÔÓ¦wDataTypeÌîдPCCH£»
ÆäËûÇé¿öÏÂwDataTypeÌîдÆäËû*/
WORD awHsdpaData[Z_W_P_MAX_NO_OF_HSDPA_BYTES/2];
}T_zW_P_hsdpa_buffer;
/*==============================================================================
ÏûÏ¢£ºP_TFC_ETFC_PARAM_IND( WPHY->WMAC )
˵Ã÷: L1½«¼ÆËãºÃµÄTFC gain factorÖµ¸øMAC£¬ÓÃÓÚETFCÏÞÖÆ¹ý³ÌʹÓÃ
==============================================================================*/
typedef struct {
WORD wTfci; /*TfciÖµ*/
WORD wPadding;
DWORD dwAjNumeratorLow; /*¼ÆËãAjƽ·½ËùÓõķÖ×Ó,µÍ32λ*/
DWORD dwAjNumeratorHigh; /*¼ÆËãAjƽ·½ËùÓõķÖ×Ó,¸ß32λ*/
DWORD dwAjDenominatorLow; /*¼ÆËãAjƽ·½ËùÓõķÖĸ,µÍ32λ*/
DWORD dwAjDenominatorHigh; /*¼ÆËãAjƽ·½ËùÓõķÖĸ,¸ß32λ*/
}T_zW_P_tfc_gain_factor;/*signalledGainFactors & computedGainFactors*/
typedef struct
{
WORD wiMantissa; /*βÊý*/
WORD wiExp; /*¸ºÊý¼ÓÆ«ÒÆ¡£Ö¸Êý*/
}T_zW_P_pc_flot_data;
typedef struct {
WORD wMsgId;
WORD wNumOfTfc; /*Tfc Êý*/
WORD wUlDpdchNum; /*ÓëT_zW_P_ul_dpch_setup_modify_reqÖÐÐÅÔªwNumOfDPDCHÏàͬ*/
WORD wPadding;
T_zW_P_tfc_gain_factor atTfcParam[Z_W_P_MAX_UL_TFC_NUM];/*ËùÓÐTFCµÄBetaC,BetaD*/
T_zW_P_pc_flot_data tPMax;
}T_zW_P_tfc_etfc_param_ind;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_ul_power_info( WPHY->WMAC )
˵Ã÷: TFC¹¦ÂÊ¿ØÖÆ
==============================================================================*/
typedef struct {
WORD wTfcPowerFlag; /*ÊÇ·ñЯ´øtfc power info£¨0~1£©*/
WORD wCompressedFlg;
WORD awExcessPowerFlag[Z_W_P_MAX_UL_TFC_NUM]; /*TFCIÊÇ·ñ³¬¹ý×î´ó´«Ê书ÂʵÄָʾ£¬Êý×éϱêΪTFCI£»Êý×éÄÚÈÝΪÈý¸öʱ϶µÄ²âÁ¿½á¹û£¨bitmap£©£¬BIT0£¨LSB£©£ºµÚÒ»¸öʱ϶²âÁ¿½á¹û£¬BIT1£ºµÚ¶þ¸öʱ϶²âÁ¿½á¹û£¬BIT2£ºµÚÈý¸öʱ϶²âÁ¿½á¹û*/
}T_zW_P_ul_power_info;
/*==============================================================================
ÏûÏ¢£ºT_zW_P_upa_etfc_restrict_info( WPHY->WMAC )
˵Ã÷: ETFCÏÞÖÆ¹ý³ÌÐÅÏ¢
==============================================================================*/
typedef struct {
WORD wNpilotC; /*ѹËõÖ¡ÖУ¬Ã¿¸öʱ϶ÉÏDPCCHµÄpilot bitÊýÁ¿¡£È¡Öµ·¶Î§3~8bit*/
WORD wNpilotN; /*·ÇѹËõÖ¡ÖУ¬Ã¿¸öʱ϶ÉÏDPCCHµÄpilot bitÊýÁ¿¡£È¡Öµ·¶Î§3~8bit*/
WORD wNSlotC; /*ѹËõģʽ֡ÖУ¬²»·¢ËÍÊý¾ÝµÄʱ϶Êý¡£È¡Öµ·¶Î§1~15*/
WORD wPadding;
}T_zW_P_dpch_compressed_info;
typedef struct {
WORD wCompressedFlg; /*0-ÎÞѹËõģʽÐÅÏ¢£¬1-´æÔÚѹËõģʽÐÅÏ¢*/
WORD wBeltaHs; /*HsdpcchµÄÔöÒæÒò×Ó£¬·¶Î§0~38*15*/
WORD wEstimatePdpcchFilterSlotNum; /*Â˲¨Ê±Ï¶¸öÊý*/
WORD wPadding;
T_zW_P_dpch_compressed_info tDpchCompressedInfo; /*ѹËõģʽÐÅÏ¢*/
T_zW_P_pc_flot_data wEstimatePdpcchTarg[Z_W_P_MAX_UL_FREQUENCY_NUM]; /*DPCCHÆÀ¹À¹¦ÂÊ£¬Êý×éϱê0±íʾÖ÷Ƶ£¬Êý×éϱê1±íʾ¸¨Æµ£¬2msTTIʱÆÀ¹À3slots£¬10msTTIʱÆÀ¹À15slots¡£ÓÃÖ¸ÊýÐÎʽ±íʾ¡£Èç¹ûÊÇѹËõģʽ£¬¸Ã¹¦ÂÊÊÇÕÛËãºóµÄ¹¦ÂÊÖµ£¬¼´PDPCCH,target,i = PDPCCH,filtered,i¡Á (Npilot,N/ Npilot,C)*/
}T_zW_P_upa_etfc_restrict_info;
typedef struct {
WORD wPrimFreqTransFlg; /*Ö÷Ƶ,pc preambleÊÇ·ñ¿É·¢Êý¾Ý£¬»òѹËõģʽgapÊÇ·ñ¿É·¢Êý¾Ý¡£0£º²»ÔÊÐí·¢ËÍÊý¾Ý£¬1£ºÔÊÐí·¢Êý¾Ý*/
WORD wSecFreqTransFlg;
}T_zW_P_upa_trans_info;
typedef struct {
WORD wNtr[ Z_W_P_MAX_NTR_NUM];/*CMÔÚN+2--N+9Ö¡ÖУ¬Ã¿Ö¡ÖеÄÕ¼ÓÃʱ϶Êý£¬wNtr[0]¶ÔÓ¦N+2Ö¡,ÎïÀí²ãÔÚÊÕµ½CMÅäÖÃʱ¼°Ê±Éϱ¨£¬Ö®ºóµÄÉϱ¨Âú×ã CFN%8=0 Éϱ¨¡£Éϱ¨µÄÌáǰÁ¿Îª20MS*/
WORD wNtrStartCfn;/* Éϱ¨µÄNtr[0]ËùÔÚÖ¡Ö¡ºÅ*/
WORD wPadding;
}T_zW_P_cm_ntr_info;
/*==============================================================================
½á¹¹£ºT_zW_P_data_frame_info( PHY->WMAC )
˵Ã÷: Ö¡ÖжÏÊý¾ÝÐÅÏ¢Éϱ¨
==============================================================================*/
typedef struct {
WORD wUph;
WORD wDtxActive; /*ÅäÖÃÁËDtxDrxºó£¬Ö¸Ê¾DtxÊÇ·ñ¼¤»î»òÈ¥»î£»0£ºÎÞЧ£¬1£ºÖ¸Ê¾¼¤»î£¬2£ºÖ¸Ê¾È¥»î*/
WORD wDrxActive; /*ÅäÖÃÁËDtxDrxºó£¬Ö¸Ê¾DrxÊÇ·ñ¼¤»î»òÈ¥»î£»0£ºÎÞЧ£¬1£ºÖ¸Ê¾¼¤»î£¬2£ºÖ¸Ê¾È¥»î*/
WORD wSecCellActive; /*ÅäÖõڶþƵµãºó£¬Ö¸Ê¾µÚ¶þƵµãÊÇ·ñ¼¤»î£»0£ºÎÞЧ£¬1£ºÖ¸Ê¾¼¤»î£¬2£ºÖ¸Ê¾È¥»î*/
WORD wRachDchTransFg; /*ָʾRACH,DCH´ËÖ¡ÊÇ·ñ¿ÉÒÔ·¢ËÍÊý¾Ý£¬0£º²»ÔÊÐí·¢ËÍÊý¾Ý£¬1£ºÔÊÐí·¢Êý¾Ý*/
WORD wCmNtrInfoFlg;
T_zW_P_cm_ntr_info tCmNtrInfo;
T_zW_P_upa_trans_info tUpaTransInfo;
T_zW_P_upa_grant_harq_info tGrantHarqInfo;
DWORD dwCmPattern; /*Éϱ¨Ñ¹ËõģʽͼÑù£¬Ã¿¸ö×ÓÖ¡Éϱ¨Ò»´Î£¬Éϱ¨µÄÊÇ3¸ö×ÓÖ¡Ö®ºóµÄÖµ*/
T_zW_P_ul_power_info tUlPowerInfo;/*Õë¶ÔDPCH,ÎïÀí²ãÉϱ¨µÄÌáǰÁ¿ÊÇ2Ö¡*/
T_zW_P_upa_etfc_restrict_info tEtfcRestrictInfo;/*Õë¶ÔUPA£¬ÎïÀí²ãÉϱ¨µÄÌáǰÁ¿ÊÇ2¸ö×ÓÖ¡*/
}T_zW_P_data_frame_info;
/*==============================================================================
L1W->PHY
ʼþ£ºW_P_ZWPCG_REQ_EV
¹¦ÄÜ:
ÐÞ¸Ä/²éѯWÎïÀí²ãÅäÖòÎÊý¡£
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wCmd; /* ÃüÁîºÅ£¬¶ÔÓ¦²»Í¬µÄÎïÀí²ã¹¦ÄÜ */
WORD awValFg[Z_ZWPCG_VALFG_NUM]; /* ±íʾadwValÊÇ·ñ´æÔÚ£¬0±íʾ²»´æÔÚ£¬1±íʾ´æÔÚ */
DWORD adwVal[Z_ZWPCG_VALFG_NUM]; /* ²ÎÊýÁÐ±í£¬ÐÞ¸Ä/¶ÁÈ¡µÄÎïÀí²ã²ÎÊý£¬²ÎÊýʵ¼Êº¬ÒåÓÉÎïÀí²ã¸ø³ö */
}T_zW_P_Zwpcg_Req;
/*==============================================================================
PHY->L1W
ʼþ£ºW_P_ZWPCG_CNF_EV
¹¦ÄÜ:
ÐÞ¸Ä/²éѯWÎïÀí²ãÅäÖòÎÊýµÄÏìÓ¦ÏûÏ¢¡£
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wCmd; /* ÃüÁîºÅ£¬¶ÔÓ¦²»Í¬µÄÎïÀí²ã¹¦ÄÜ£¬bMode=0/1¶¼ÓÐЧ */
WORD wRslt; /* ±íʾÉèÖýá¹û£¬Z_TRUEÉèÖóɹ¦£¬Z_FALSEÉèÖÃʧ°Ü wCmdΪÉèÖÃÃüÁîʱÓÐЧ */
WORD awValFg[Z_ZWPCG_PARAM_NUM]; /*°´ÕÕϱêºÍdwValÖÐÖµÒ»Ò»¶ÔÓ¦£¬bVal1Fg[0]±íʾdwVal[0]ÊÇ·ñ´æÔÚ,ÒÀ´ÎÀàÍÆ£¬0±íʾ²»´æÔÚ£¬1±íʾ´æÔÚ*/
LONG alVal[Z_ZWPCG_PARAM_NUM]; /*²ÎÊý1/²ÎÊý2¡­£¬ÐÞ¸Ä/¶ÁÈ¡µÄÎïÀí²ã²ÎÊý£¬²ÎÊýʵ¼Êº¬ÒåÓÉÎïÀí²ã¸ø³ö*/
}T_zW_P_Zwpcg_Cnf;
/*==============================================================================
L1W->PHY
ʼþ£ºW_P_RPI_SET_REQ_EV
¹¦ÄÜ:
ÉèÖÃWPHYʹÓõÄ×î´ó·¢É书ÂʵÄRPI VAULE
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wRpi; /* PUMAX¶ÔÓ¦µÄRPIµµÎ»£¬·¶Î§0/1/2 */
}T_zW_P_rpi_set_req;
#define Z_MAX_RPI_NR (BYTE)3
#define Z_W_RPI_SUPPORT_MAX_BAND (BYTE)8
typedef struct
{
WORD wBand; /* ¶ÔÓ¦µÄBANDºÅ */
WORD bPumax[Z_MAX_RPI_NR]; /* ÒÔrpiΪindexÈ·ÈÏ×î´ó·¢É书ÂÊpumax */
}T_zBandRpiCfg;
/*==============================================================================
L1W->PHY
ʼþ£ºW_P_RPI_CFG_REQ_EV
¹¦ÄÜ:
ÅäÖÃWÏÂ8¸öBAND£¬Ã¿¸öBANDÏÂRPIºÍPUMAXµÄÓ³Éä¹ØÏµ£¬ÆäÖÐRPI·¶Î§0~2
==============================================================================*/
typedef struct
{
WORD wMsgId;
T_zBandRpiCfg tWBandRpiCfg[Z_W_RPI_SUPPORT_MAX_BAND];
}T_zW_P_rpi_cfg_req;
/*==============================================================================
* Êý¾ÝÃæÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå end *
==============================================================================*/
/**************************************************************************
* PSÓëWPHY ¹²ÏíDDRµÄ5MB ¿Õ¼ä *
**************************************************************************/
#if 0
#if defined (_CHIP_ZX297550)
#define DDR_BASE_ADDR_FOR_W 0x5800000
#endif
#if defined (_CHIP_ZX2804)
#define DDR_BASE_ADDR_FOR_W 0x15800000
#endif
#endif
/*PSÓëphy¹²ÏíDDR¸ù¾ÝÒµÎñÇé¿ö·Ö³É5¸öµÈ¼¶*/
#define PS_WPHY_DL_DATA_DDR_GRADE_NUM (5)
#define PS_MAC_HEAD_IFNO_SIZE 620//ec616000258401
#define PS_WPHY_DL_DATA_TYPE0_GRADE_BUF_SIZE 0//(86 + PS_MAC_HEAD_IFNO_SIZE)
#define PS_WPHY_DL_DATA_TYPE1_GRADE_BUF_SIZE 0//(238 + PS_MAC_HEAD_IFNO_SIZE)
#define PS_WPHY_DL_DATA_TYPE2_GRADE_BUF_SIZE 0//(682 + PS_MAC_HEAD_IFNO_SIZE)
#define PS_WPHY_DL_DATA_TYPE3_GRADE_BUF_SIZE 0//(1980 + PS_MAC_HEAD_IFNO_SIZE)
#define PS_WPHY_DL_DATA_TYPE4_GRADE_BUF_SIZE (5282 + PS_MAC_HEAD_IFNO_SIZE)
#define PS_WPHY_DL_DATA_TYPE0_GRADE_BUF_NUM 0//505
#define PS_WPHY_DL_DATA_TYPE1_GRADE_BUF_NUM 0//505
#define PS_WPHY_DL_DATA_TYPE2_GRADE_BUF_NUM 0//400
#define PS_WPHY_DL_DATA_TYPE3_GRADE_BUF_NUM 0//300
#define PS_WPHY_DL_DATA_TYPE4_GRADE_BUF_NUM 131//200
#define PS_WPHY_DL_DATA_TYPE_GRADE_BUF_NUM_ALL (PS_WPHY_DL_DATA_TYPE0_GRADE_BUF_NUM + PS_WPHY_DL_DATA_TYPE1_GRADE_BUF_NUM + PS_WPHY_DL_DATA_TYPE2_GRADE_BUF_NUM\
+PS_WPHY_DL_DATA_TYPE3_GRADE_BUF_NUM + PS_WPHY_DL_DATA_TYPE4_GRADE_BUF_NUM)//add by shideyou
/**************************************************************************
* PSÓëWPHY ¹²ÏíRAMµÄ60K ¿Õ¼äPS_PHY_BASE_ADDR+144K---PS_PHY_BASE_ADDR+208K *
**************************************************************************/
#ifdef Z_SEND_TO_SIMPHY
#define PS_PHY_BASE_ADDR 0x00000004//²úÆ·ÏßÌṩ
#define PS_WPHY_BASE_ADDR (PS_PHY_BASE_ADDR +24000)
#else
#define PS_WPHY_BASE_ADDR IRAM_BASE_ADDR_FOR_W
#endif
#if 0
#define PS_WPHY_EVENT_ADDR PS_WPHY_BASE_ADDR
/*PS ¸øÎïÀí²ã·¢ËÍÏûÏ¢µÄÆðʼµØÖ·*/
#define PS_TO_WPHY_EVENT_ADDR PS_WPHY_BASE_ADDR
#define PS_TO_WPHY_ENENT_BUF_SIZE (0X61BC >> CPU_SHIFT) //add by shideyou /*PS->WPHY ÏûÏ¢²¿·ÖÕ¼ÓõÄRAM¿Õ¼ä´óС*/
/*ÎïÀí²ã¸øPS·¢ËÍÏûÏ¢µÄÆðʼµØÖ·*/
#define WPHY_TO_PS_EVENT_ADDR (PS_WPHY_BASE_ADDR + PS_TO_WPHY_ENENT_BUF_SIZE)
/*PSÓëWPHY ÏûÏ¢²¿·ÖÕ¼ÓõÄRAM¿Õ¼ä´óС*/
#define PS_WPHY_ENENT_BUF_SIZE (0X8110 >> CPU_SHIFT)
#endif
/*Êý¾Ý±£»¤Çø´óС*/
#define PS_WPHY_SAFEGUARD_SIZE (4 >> CPU_SHIFT)
#if 0
/*ÆÕͨÉÏÐÐÊý¾ÝµÄÆðʼµØÖ·*/
#define PS_WPHY_UL_DATA_ADDR (PS_WPHY_EVENT_ADDR + PS_WPHY_ENENT_BUF_SIZE +PS_WPHY_SAFEGUARD_SIZE)
#define PS_WPHY_UL_RACH_DPCH_ADDR PS_WPHY_UL_DATA_ADDR
#define PS_W_UL_RACH_DPCH_BUF_SIZE (2* sizeof(T_zW_P_ul_data_buffer))
#endif
/*UPA¿ØÖÆÐÅÏ¢²¿·ÖÆðʼµØÖ·*/
#define PS_WPHY_UPA_CTRL_INFO_HARQ_NUM 8 //add by shideyou ,ºóÃæÈç¹ûÖ§³ÖMIMOʱÐèÒª¸Ä³É16
//#define PS_WPHY_UPA_CTRL_INFO_ADDR (PS_W_UL_RACH_DPCH_BUF_SIZE + PS_WPHY_UL_RACH_DPCH_ADDR+ 2* PS_WPHY_SAFEGUARD_SIZE) //modify by shideyou, add 4 byte for share harqid
#define PS_WPHY_UPA_CTRL_INFO_ADDR (PS_WPHY_BASE_ADDR + 2* PS_WPHY_SAFEGUARD_SIZE) //modify by shideyou, add 4 byte for share harqid
#define PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE (sizeof(T_zW_P_hsupa_buffer))
#define PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR PS_WPHY_UPA_CTRL_INFO_ADDR
#define PS_WPHY_UPA_CTRL_INFO_HARQ1_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE)
#define PS_WPHY_UPA_CTRL_INFO_HARQ2_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (2*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_HARQ3_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (3*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_HARQ4_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (4*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_HARQ5_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (5*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_HARQ6_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (6*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_HARQ7_ADDR (PS_WPHY_UPA_CTRL_INFO_HARQ0_ADDR + (7*PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE))
#define PS_WPHY_UPA_CTRL_INFO_BUF_SIZE (16* PS_WPHY_UPA_ONE_HARQ_CTRL_INFO_BUF_SIZE)/*¿¼Âǵ½Ö§³ÖMIMOµÄÇé¿ö*/
/*ÎïÀí²ãÓ²¼þW-EUTR²¿·ÖUPA´æ·ÅÊý¾ÝµØÖ·£º*/
#if defined (_CHIP_ZX2804)
/*2804ƽ̨£º 0x5040 0000; wphyÌṩ*/
#define WPHY_UPA_DATA_BASE_ADDR (0X40B00000 >> CPU_SHIFT)
#endif
#if defined(_CHIP_ZX297520) || defined(_CHIP_ZX297520V2) || defined(_CHIP_ZX297520V1_1)
/*7520ƽ̨£º */
#define WPHY_UPA_DATA_BASE_ADDR (0XA4000000 >> CPU_SHIFT)
#endif
#if defined (_CHIP_ZX297520V3)
/*7520V3ƽ̨£º */
#define WPHY_UPA_DATA_BASE_ADDR DDR_BASE_ADDR_WUPA_DATA//(0X2759AC00 >> CPU_SHIFT)
#endif
#if defined (_CHIP_ZX297550A)
/*7550Aƽ̨£º0xA280 0000;*/
#define WPHY_UPA_DATA_BASE_ADDR (0XA2800000 >> CPU_SHIFT)
#endif
#if defined (_CHIP_ZX297520V3)
/*7520V3ƽ̨£º UPAÊý¾ÝÔÚDDRÉÏ*/
#define WPHY_UPA_DATA_HARQ_BASE_ADDR 0
#define WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE ((0X168*4) >> CPU_SHIFT)
#define WPHY_UPA_DATA_TTI10_HARQ1_BUF_SIZE ((0X2d0*4) >> CPU_SHIFT)
#else
#define WPHY_UPA_DATA_HARQ_BASE_ADDR (0Xb000*4)
#define WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE (0X168*4)
#define WPHY_UPA_DATA_TTI10_HARQ1_BUF_SIZE (0X2d0*4)
#endif
#define WPHY_UPA_DATA_TTI2_HARQ0_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR )
#define WPHY_UPA_DATA_TTI2_HARQ1_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ2_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 2*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ3_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 3*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ4_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 4*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ5_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 5*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ6_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 6*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI2_HARQ7_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 7*WPHY_UPA_DATA_TTI2_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI10_HARQ0_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR )
#define WPHY_UPA_DATA_TTI10_HARQ1_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + WPHY_UPA_DATA_TTI10_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI10_HARQ2_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 2*WPHY_UPA_DATA_TTI10_HARQ1_BUF_SIZE)
#define WPHY_UPA_DATA_TTI10_HARQ3_BUF_ADDR (WPHY_UPA_DATA_BASE_ADDR + WPHY_UPA_DATA_HARQ_BASE_ADDR + 3*WPHY_UPA_DATA_TTI10_HARQ1_BUF_SIZE)
/*Ö¡ÖжÏÐÅÏ¢°üÀ¨Êý¾Ý²¿·Ö£¬ÒÔ¼°Ö¡ºÅ£¬PSÓëÎïÀí²ã¹²ÏíµÄÆäËûÐÅÏ¢ÈçDRX GRANT REQÐÅÏ¢*/
#define PS_WPHY_FRAME_DATA_INFO_ADDR (PS_WPHY_UPA_CTRL_INFO_ADDR + PS_WPHY_UPA_CTRL_INFO_BUF_SIZE + PS_WPHY_SAFEGUARD_SIZE)
#define PS_WPHY_FRAME_DATA_BUF_SIZE (sizeof(T_zW_P_data_frame_info))
/*Ö¡ºÅÏà¹ØÐÅÏ¢*/
#define PS_WPHY_CFN_ADDR (PS_WPHY_FRAME_DATA_BUF_SIZE + PS_WPHY_FRAME_DATA_INFO_ADDR + PS_WPHY_SAFEGUARD_SIZE)
#define PS_WPHY_SUBFRAME_ADDR ((4>>CPU_SHIFT) + PS_WPHY_CFN_ADDR)
#define PS_WPHY_SFN_ADDR ((4>>CPU_SHIFT) + PS_WPHY_SUBFRAME_ADDR)
#define PS_WPHY_RTSFN_ADDR ((4>>CPU_SHIFT) + PS_WPHY_SFN_ADDR)
#define PS_WPHY_RTCFN_ADDR ((4>>CPU_SHIFT) + PS_WPHY_RTSFN_ADDR)/*ÎïÀí²ãÿ¸öÖ¡ÖжÏÉϱ¨µÄRT Ïà¹ØCFN£¬È¡Öµ·¶Î§0-255.ÓÉÎïÀí²ãRTʱ»úÄ£256µÃµ½*/
/*ÓÃÓÚÊý¾Ý·¢ËÍ¿ØÖƵÄTransFlg.ÎïÀí²ãд,PS¶Á*/
#define PS_WPHY_TRANSFLG_ADDR ((4>>CPU_SHIFT) + PS_WPHY_RTCFN_ADDR)
/*ÓÃÓÚDRX¿ØÖƵÄGRANT MONITOR REQ.PSдÎïÀí²ãÖ¡Í·¶Á*/
#define PS_WPHY_GRANT_MONITOR_REQ_ADDR ((4>>CPU_SHIFT) + PS_WPHY_TRANSFLG_ADDR + PS_WPHY_SAFEGUARD_SIZE)
#define PS_WPHY_GRANT_MONITOR_REQ_BUF_SIZE (sizeof( T_zW_P_grant_monitor_req))
/*Çý¶¯Î¬»¤¹²ÏíDDRµÄRING BUF¶ÓÁÐÐÅÏ¢£ºÕ¼ÓÃBUFºÍ¿ÕÏÐBUF add by shideyou*/
/*IRAM DL free buf addr add by shideyou*/
#define PS_WPHY_FREE_BUF_ADDR (PS_WPHY_GRANT_MONITOR_REQ_ADDR + PS_WPHY_GRANT_MONITOR_REQ_BUF_SIZE)
#define PS_WPHY_FREE_BUF_SIZE ((2*4*PS_WPHY_DL_DATA_DDR_GRADE_NUM + 4*(PS_WPHY_DL_DATA_TYPE_GRADE_BUF_NUM_ALL + PS_WPHY_DL_DATA_DDR_GRADE_NUM))>>CPU_SHIFT)
#if 0
/*IRAM DL send buf addr add by shideyou*/
#define PS_WPHY_SEND_BUF_NUM 15
#define PS_WPHY_SEND_BUF_ADDR (PS_WPHY_FREE_BUF_ADDR + PS_WPHY_FREE_BUF_SIZE)
#define PS_WPHY_SEND_BUF_SIZE ((2*4 + 4 * (PS_WPHY_SEND_BUF_NUM + 1))>>CPU_SHIFT)
#endif
/*HFN address add by shideyou.outputed by wphy and used for TMT */
#define WPHY_HFN_ADDRESS (PS_WPHY_FREE_BUF_ADDR + PS_WPHY_FREE_BUF_SIZE)
#define WPHY_HFN_SIZE (0x4 >>CPU_SHIFT)
#endif // Z_PS_WPHY_INTERFACE_H