blob: 806646d87de3c52326a27eddcae25eb6f49c946d [file] [log] [blame]
/*****************************************************************************
*°æ±¾ËùÓÐ (C)2010ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾
* Ä£¿éÃû £ºPS
* ÎļþÃû £ºtdpsphyint.h
* Îļþ±êʶ£º
* Ïà¹ØÎļþ£º
* ʵÏÖ¹¦ÄÜ£ºPSºÍTD PHYµÄ½Ó¿Ú¶¨Òå
* ×÷Õß £º
* °æ±¾ £º
* Íê³ÉÈÕÆÚ£º
* ÆäËü˵Ã÷£º
*
* Ð޸ļǼ1£º
* ÈÕ ÆÚ£º2010.05.18
* ÐÞ¸ÄÈË£º ZHUO Bibo
* ÐÞ¸ÄÄÚÈÝ£º
* 1) ºÏ²¢tdmacphyint.hºÍtdrrcphyint.hÁ½·ÝÍ·ÎļþµÄÄÚÈÝ
** Ð޸ļǼ2£º
* ÈÕ ÆÚ£º2011.09.02
* ÐÞ¸ÄÈË£º sun chang jiang
* ÐÞ¸ÄÄÚÈÝ£º
* 1) T_zTD_P_IratGapConfig_ReqÖвÎÊýwShortGapFlg¸üÃûΪwIdleOrConnectFlg£¬²¢ÐÞ¸Ä×¢ÊÍ£»
2)T_zTD_P_hsdpa_config_reqÖÐÔö¼Ó²ÎÊýwMacHdTyp
3)T_zTD_P_CPhy_InterMeas_ReqÖеĺêMULTI_IRAT_2963È¥µô¡£
** Ð޸ļǼ3£º
* ÈÕ ÆÚ£º2011.09.28
* ÐÞ¸ÄÈË£º sun chang jiang
* ÐÞ¸ÄÄÚÈÝ£º
* 1) T_zTD_P_hsupa_config_reqÖе±¿ªR9ºêʱÔö¼Ó²ÎÊýtUplink_timing_advance_control¡£
** Ð޸ļǼ4£º
* ÈÕ ÆÚ£º2011.11.11
* ÐÞ¸ÄÈË£º sun chang jiang
* ÐÞ¸ÄÄÚÈÝ£º
* 1) È¥µôR7_SUPPORT¡£
* Ð޸ļǼ5£º
* ÈÕ ÆÚ£º2012.03.12
* ÐÞ¸ÄÈË£ºÎ¤ÓñÕä
* ÐÞ¸ÄÄÚÈÝ£º
* 1)Ôö¼ÓÏûÏ¢½á¹¹T_zTD_P_DetectCellInfo
2)Ôö¼Óºê¶¨ÒåZ_TD_P_MAX_DETECT_CELL_NUM
* Ð޸ļǼ6£º
* ÈÕ ÆÚ£º2012.05.10
* ÐÞ¸ÄÈË£ºËﳤ½­
* ÐÞ¸ÄÄÚÈÝ£º
* 1)T_zTD_P_UlDpch_setup_mod_reqÖеIJÎÊýwSpec_burst_generation_periodÔö¼Ó×¢ÊÍ
2£©Ôö¼ÓÏûÏ¢½á¹¹T_zTD_P_Ul_phy_ch_ctrl_req
* Ð޸ļǼ7£º
* ÈÕ ÆÚ£º2012.05.10
* ÐÞ¸ÄÈË£ºËﳤ½­
* ÐÞ¸ÄÄÚÈÝ£º
1£©T_zTD_P_hsdsch_sps_infoÖÐÔö¼ÓwInitSpsInfoFgÓÃÓÚ±íʾtInitSpsInfoÊÇ·ñÓÐЧ£¬Í¬Ê±È¥µô²ÎÊýwPadding£¬±£³ÖËÄ×Ö½Ú¶ÔÆë£»
2£©T_zTD_P_edch_sps_infoÖÐÔö¼ÓwInitSpsInfoFgÓÃÓÚ±íʾtInitSpsInfoÊÇ·ñÓÐЧ£¬Í¬Ê±Ôö¼Ó²ÎÊýwPadding£¬±£³ÖËÄ×Ö½Ú¶ÔÆë£»
* Ð޸ļǼ8£º
* ÈÕ ÆÚ£º2012.5.16
* ÐÞ¸ÄÈË£ºÕÅÅô³Ì
* ÐÞ¸ÄÄÚÈÝ£º
1£© Z_TD_P_MAX_INTER_FREQ_NUM ÓÉ9¸Ä³É16
2£© Z_TD_P_MAX_BLIND_INTER_FREQ ÓÉ9¸Ä³É16
* Ð޸ļǼ9£º
* ÈÕ ÆÚ£º2012.06.14
* ÐÞ¸ÄÈË£ºËﳤ½­
* ÐÞ¸ÄÄÚÈÝ£º
* 1)Z_TD_P_MAX_UL_TS¸ÄΪ4
2£©Z_TD_P_MAX_NO_OF_UL_BYTES¸ÄΪ1168
2£©T_zTD_P_CPhy_UeIntMeas_IndΪÁËËÄ×Ö½Ú¶ÔÆë£¬Ôö¼ÓwPadding;
* Ð޸ļǼ10£º
* ÈÕ ÆÚ£º2012.07.10
* ÐÞ¸ÄÈË£ºËﳤ½­
* ÐÞ¸ÄÄÚÈÝ£º ѰºôÏÂÒÆ¹¦ÄÜÐÞ¸Ä
* 1)T_zTD_P_paging_reqÖÐÔö¼ÓT_zTD_P_UeId
2£©ÐÂÔö×ӽṹT_zTD_P_UeId¡¢T_zTD_P_URnti¡¢T_zTD_P_ImsiGsm
* Ð޸ļǼ11£º
* ÈÕ ÆÚ£º2013.04.18
* ÐÞ¸ÄÈË£ºÕÅÅô³Ì
* ÐÞ¸ÄÄÚÈÝ£º GAPÇëÇóÉϱ¨Ôö¼ÓÎÕÊÖ×Ö¶Î
* 1)T_zTD_P_umts_idle_PeriodRep_reqÖÐÔö¼ÓdwGapId
2)T_zTD_P_umts_inact_time_indÖÐÔö¼ÓdwGapId
*/
#ifndef Z_TDPS_PHY_INTERFACE_H
#define Z_TDPS_PHY_INTERFACE_H
/**************************************************************************
* Í·Îļþ°üº¬ *
**************************************************************************/
/**************************************************************************
* ³£Á¿¶¨Òå *
**************************************************************************/
/**************************************************************************
* È«¾Öºê¶¨Òå *
**************************************************************************/
#define Z_TD_P_MAX_NO_OF_UL_BYTES (WORD)1168 /*°´ÉÏÐÐ384k¼Æ*/
#define Z_TD_P_MAX_NO_OF_DL_BYTES (WORD)1168 /*°´ÏÂÐÐ384k¼Æ*/
#ifndef _USE_HSPAPLUS
#define Z_TD_P_MAX_NO_OF_HSDPA_BYTES (WORD)1756 /*°´2.8M£¬ÎïÀí²ãÿ5msͶµÝ¼Æ(14043bit))*/
#define Z_TD_P_HSDPA_DATA_LEN (WORD)1756 /*Ò»¿éHSDPAÊý¾Ý³¤¶È*/
#else
#define Z_TD_P_MAX_NO_OF_HSDPA_BYTES (WORD)2634 /*°´2.8M£¬ÎïÀí²ãÿ5msͶµÝ¼Æ(14043bit))*/
#define Z_TD_P_HSDPA_DATA_LEN (WORD)2634 /*Ò»¿éHSDPAÊý¾Ý³¤¶È*/
#endif
#define Z_TD_P_MAX_NO_OF_HSUPA_BYTES (WORD)1400 /*°´ÉÏÐÐ1.1M¼Æ*/
/*Ð¡ÇøËÑË÷Ïà¹Øºê¶¨Òå*/
#define Z_TD_P_MAX_FREQSCAN_FREQ_NUM (WORD)32
#define Z_TD_P_MAX_RSSI_RESULTS_NUM (WORD)32
#define Z_TD_P_MAX_SRH_RESULTS_NUM (WORD)8
#define Z_TD_P_MAX_NUM_OF_BCH_DWORDS (WORD)8
#define Z_TD_P_CELLSRHTYPE_STRONGEST (WORD)0
#define Z_TD_P_CELLSEARCHTYPE_BLIND (WORD)1
#define Z_TD_P_CELLSEARCHTYPE_SPEC (WORD)2
/*²âÁ¿Ïà¹Øºê¶¨Òå*/
#define Z_TD_P_MAX_INTER_FREQ_NUM (WORD)16 /*×î¶àÖ§³ÖµÄÒìÆµ²âÁ¿ÔØÆµÊý*/
#define Z_TD_P_MAX_INTRA_CELL_NUM (WORD)32 /*×î¶à¿Éͬʱ²âÁ¿Í¬ÆµÐ¡ÇøÊý*/
#define Z_TD_P_MAX_INTER_CELL_NUM (WORD)32 /*×î¶à¿Éͬʱ²âÁ¿ÒìÆµÐ¡ÇøÊý*/
#define Z_TD_P_MAX_BLIND_INTER_FREQ (WORD)(0x10)
#define Z_TD_P_MAX_BLIND_INTER_CELL (WORD)(0x03)
#define Z_TD_P_INTER_INVALID_CELLID (WORD)(0xFFFE)
#define Z_TD_P_MAX_DETECT_CELL_NUM (WORD)4
/*ÎÞÏß×ÊÔ´ÅäÖÃÏà¹Øºê¶¨Òå*/
#define Z_TD_P_MAX_PRACH_FPACH (WORD)(0x08)
#define Z_TD_P_MAX_UL_TRCH_NUM (WORD)8
#define Z_TD_P_MAX_DL_TRCH_NUM (WORD)8
#define Z_TD_P_MAX_DL_TS (WORD)4
#define Z_TD_P_MAX_UL_TS (WORD)4
#define Z_TD_P_MAX_DL_CCTRCH_NUM (WORD)1
#define Z_TD_P_MAX_UL_CCTRCH_NUM (WORD)1
#define Z_TD_P_MAX_DL_TF_NUM (WORD)64
#define Z_TD_P_MAX_DL_TFCS_NUM (WORD)128
#define Z_TD_P_MAX_UL_TF_NUM (WORD)32
#define Z_TD_P_MAX_UL_TFCS_NUM (WORD)64
/*coding type macro defination*/
#define Z_TD_P_NO_CODING_TYPE (WORD)(0x00)
#define Z_TD_P_CC12_TYPE (WORD)(0x01)
#define Z_TD_P_CC13_TYPE (WORD)(0x02)
#define Z_TD_P_TURBO_CODING_TYPE (WORD)(0x03)
/*crc length macro defination*/
#define Z_TD_P_CRC_LENGTH_0 (WORD)(0x00)
#define Z_TD_P_CRC_LENGTH_1 (WORD)(0x01)
#define Z_TD_P_CRC_LENGTH_2 (WORD)(0x02)
#define Z_TD_P_CRC_LENGTH_3 (WORD)(0x03)
#define Z_TD_P_CRC_LENGTH_4 (WORD)(0x04)
#define Z_TD_P_MAX_PRACH_FPACH_CODE (WORD)4
#define Z_TD_P_MAX_H_PROCESS (WORD)0x08
/*MAC-dÏà¹Øºê¶¨Òå*/
#define Z_TD_P_MAX_QUEUE_ID (WORD)8
#define Z_TD_P_MAX_MAC_D_PDU_SIZE (WORD)8
#define Z_TD_P_MAX_HS_SCCH (WORD)4
#define Z_TD_P_CH_CODE_NUM (WORD)16
/*˫ģÖÐGAP¸öÊýºê¶¨Òå*/
#define Z_TD_P_MAX_GAP_NUM (WORD)8
/*UPAÏà¹Øºê¶¨Òå*/
#define Z_TD_P_MAX_EPUCH_TS_NUM (WORD)5
#define Z_TD_P_MAX_EAGCH_NUM (WORD)4
#define Z_TD_P_MAX_SCH_EHICH_NUM (WORD)4
/*´«ÊäÐŵÀÀàÐÍ,½öÓÃÓÚºÍÎïÀí²ãµÄ½Ó¿ÚÖÐ*/
#define Z_TD_P_PCH (WORD)0x0
#define Z_TD_P_FACH (WORD)0x1
#define Z_TD_P_DL_DCH (WORD)0x2
#define Z_TD_P_RACH (WORD)0x3
#define Z_TD_P_UL_DCH (WORD)0x4
/*ÉèÖÃTDÎïÀí²ãÊÇ·ñÖ÷ģʽ*/
#define Z_TD_P_IRAT_MODE_SLAVE (WORD)0 /*ÉèÖÃΪ¸¨Ä£Ê½*/
#define Z_TD_P_IRAT_MODE_MASTER (WORD)1 /*ÉèÖÃΪÖ÷ģʽ*/
#ifdef R9_SUPPORT
#define Z_TD_P_MAX_CARRIER (WORD)3
#define Z_TD_P_MAX_HSDSCH_RX_PATTERN_NUM (WORD)4
#define Z_TD_P_MAX_HSDSCH_TBS_NUM (WORD)4
#define Z_TD_P_MAX_EDCH_TX_PATTERN_NUM (WORD)4
#endif
/*TD PS -> TD PHY ´ÓLTE PS_EPHY.hÒÆ¹ýÀ´µÄ*/
#define ZPS_TDS_P_SLEEP_TIME_INT_ICP_CF (UINT32)(0x00000001) //ÔÊÐíZSP½øË¯ÃßÖжϣ¬6300ʹÓã¬ÆäËûÏîÄ¿£¨7502£¬7510£¬7550)²»Ó㬱£Áô
#define ZPS_TDS_P_WAKEUP_INT_ICP_CF (UINT32)(0x00000002) //Òì³£»½ÐÑÖжϣ¬¸÷ÏîÄ¿¶¼Ê¹ÓÃ
#define ZPS_TDS_P_UPA_INT_ICP_CF (UINT32)(0x00000004) //UPAÈ¡Êý¾ÝÖжϣ¬¸÷ÏîÄ¿¶¼Ê¹ÓÃ
#define ZPS_TDS_P_WAIT20MS_INT_ICP_CF (UINT32)(0x00000008) //֪ͨTDÎïÀí²ã»½ÐѺó20msÄÚ²»ÔÊÐí½øË¯Ãߣ¬7502ʹÓã¬ÆäËûÏîÄ¿²»Ê¹Ó㬱£Áô
/*TD_PHY->TD_PS*/
#define ZPS_TDS_P_INT_ICP_CF (UINT32)(0x00000001) //TDÎïÀí²ãICPÖжϸøPS£¬¹©TD PHY»½ÐÑPSʹÓ㻣¨×ÓÖ¡ÖжÏÒÔºóÓÉLPMÌṩ£©
#define ZPS_TD_REQ_INT_MASK (UINT32)(0x000000FF) /**/
#define ZPS_TD_IND_INT_MASK (UINT32)(0x000000FF) /**/
/*TDÖ÷Ä£Á¬½Ó̬(FACH ¡¢DCH)ÎïÀí²ãÉϱ¨GAPÐèÒª¿Û³ýµÄÉ䯵±£»¤¼ä¸ôµ¥Î»CHIP, 7510°æ±¾Í·Î²·Ö±ð¿Û³ý10 260. 7502°æ±¾Í·Î²¿Û³ý64 320*/
#ifdef _CHIP_ZX297502
#define Z_TD_P_MEAS_DCHGAP_START_OFF (WORD)64
#define Z_TD_P_MEAS_DCHGAP_TAIL_OFF (WORD)320
#else
#define Z_TD_P_MEAS_DCHGAP_START_OFF (WORD)10
#define Z_TD_P_MEAS_DCHGAP_TAIL_OFF (WORD)260
#endif
#define Z_ZTPCG_VALFG_NUM (WORD)8
#define Z_ZTPCG_PARAM_NUM (WORD)25
/**************************************************************************
* È«¾ÖÊý¾ÝÀàÐͶ¨Òå *
**************************************************************************/
typedef struct {
DWORD dwTrch_buff_offset;
WORD wTb_number_and_trch_id;
WORD wTb_size;
}T_zTD_P_ul_trch_header;
typedef struct {
DWORD dwTrch_buff_offset; /*¸ÃTrchÊý¾ÝÓëDPRAMÖÐÖ¸¶¨BufferµÄÆðÊ¼Æ«ÒÆÁ¿£¬ÒÔWORDΪµ¥Î»*/
WORD wTrch_id;
WORD wTrch_type;
WORD wCfn_and_tb_number; /*¸ß8bitΪTbNum£¬µÍ8bitΪCFN£¨´Ó¿Õ¿Ú½ÓÊÕµ½Êý¾ÝµÄÆðʼCFN£©*/
WORD wSfn; /*´Ó¿Õ¿Ú½ÓÊÕµ½Êý¾ÝµÄÆðʼSFN*/
WORD wTb_size; /*ÓÐЧµÄTB¿é³¤¶È£¬ÒÔbitΪµ¥Î»£¬µÍλÌî³ä0*/
WORD wPadding;
DWORD dwCrc_check; /*°´TB¿é¶¨ÒåµÄbitmap, invalid for HS-DSCH because L1 send HS-data to MAC only when crc is ok*/
}T_zTD_P_dl_trch_header;
typedef struct {
WORD wTotal_length;
WORD wNr_trch;
WORD wTfci;
WORD wUl_cctrch_id; /*equivalent to tfcs id, value:1~8*/
T_zTD_P_ul_trch_header atUl_trch_header[Z_TD_P_MAX_UL_TRCH_NUM];
WORD awUl_data_area[Z_TD_P_MAX_NO_OF_UL_BYTES/2];
}T_zTD_P_mac_ul_buffer;
/*MACÓëÎïÀí²ã¼äÏÂÐÐDCH/FACH/PCHÊý¾Ý½»»¥½Ó¿Ú¶¨Òå*/
typedef struct {
WORD wTotal_length;
WORD wNr_trch;
WORD wTfci;
WORD wDl_cctrch_id; /*equivalent to tfcs id, value:1~8*/
T_zTD_P_dl_trch_header atDl_trch_header[Z_TD_P_MAX_DL_TRCH_NUM];
WORD wDl_data[Z_TD_P_MAX_NO_OF_DL_BYTES/2];
}T_zTD_P_mac_dl_buffer;
/*MACÓëÎïÀí²ã¼äHSDPAÊý¾Ý½»»¥½Ó¿Ú¶¨Òå*/
typedef struct {
WORD wTbSize;
WORD wPadding;
WORD awHsdpaData[Z_TD_P_MAX_NO_OF_HSDPA_BYTES/2];
}T_zTD_P_mac_Hsdpa_Buf;
/*==============================================================================
Ô­ÓZ_P_TFC_POWER_IND_Ev( PHY->UMAC )
˵Ã÷:
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wPadding;
WORD wTfci;
WORD wExcess_power_flag; /* "0" is Supported state->Excess-Power state;"1" is Excess-Power state->Supported state*/
}T_zTD_P_TFC_POWER_IND;
/*==============================================================================
Ô­ÓZ_P_RACH_PROCEDURE_IND_Ev( PHY->UMAC ),Z_P_ERUCCH_PROCEDURE_IND_Ev( PHY->UMAC )
˵Ã÷:
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wResult; /* "1" is success; "0" is failure*/
}T_zTD_P_RACH_PROCEDURE_IND;
/*==============================================================================
Ô­ÓZ_P_RACH_PROCEDURE_CNF_Ev(PHY -> UMAC),Z_P_ERUCCH_PROCEDURE_CNF_Ev(PHY -> UMAC)
˵Ã÷:
==============================================================================*/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zTD_P_RACH_PROCEDURE_CNF;
/*==============================================================================
Ô­ÓZ_P_ABORT_RACH_PROCEDURE_REQ_Ev( UMAC->PHY ),Z_P_ABORT_ERUCCH_PROCEDURE_REQ_Ev( UMAC->PHY )
˵Ã÷:
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wPadding;
}T_zTD_P_ABORT_RACH_PROC_REQ;
/**************************************************************************
* HSUPAÅäÖÃ *
**************************************************************************/
typedef struct {
WORD wHarqId;
WORD wStatus; /*¸Ã½ø³ÌACK/NACK½á¹ûÐÅÏ¢¡£0£ºACK£»1£ºNACK*/
}T_zTD_P_HARQ_PROCESS_STATUS;
typedef struct {
WORD wAbsolute; /*¾ø¶ÔÊÚȨֵ*/
WORD wSf; /*À©ÆµÂ룬µÍbyte,´Ó×óµ½ÓÒ±íʾÀ©ÆµÂë*/
WORD wTRRI; /*µÍ°ËλµÍ5¸öbit±íʾʱ϶×ÊÔ´ÐÅÏ¢µÄλͼ*/
WORD wEni; /*E-UCCHÊýĿָʾ*/
WORD wCode; /*ÂëµÀÐÅÏ¢£¬Ð­ÒéÕ»±¾Éí²»×öÏà¹Ø´¦Àí£¬Ö»ÊǺÍÊý¾ÝÏ·¢µÄʱºòÔÙ´ø»Ø¸øÎïÀí²ã*/
WORD wRdiFlag; /*³ÖÐøÖÜÆÚָʾ£¬±íʾ´ËÊÚȨÊÇǰ´ÎÊÚȨµÄ³ÖÐø£¬³õ´Î³öÏÖRDIÖÃ0£¬ºóÐø³öÏÖʱ£¬RDIÖÃ1£¬²¢Ð¯´øÊÚȨ*/
WORD wEi; /*ÏÂÒ»¸öÖÜÆÚÄÚE-HICHÐŵÀµÄÊýÄ¿£¬Ð­ÒéÕ»±¾Éí²»×÷´¦Àí£¬»Ø´ø¸øÎïÀí²ã*/
WORD wRdiEndFlag;
}T_zTD_P_HSUPA_GRANT_INFO;
typedef struct {
WORD wNonSchFlag; /*ÉϲãЭÒéÕ»ÊÇ·ñ¿ÉÒÔ×¼±¸·Çµ÷¶ÈÊý¾ÝµÄ±êʶ£¬0£º²»¿ÉÒÔ×¼±¸£»1£º¿ÉÒÔ×¼±¸·Çµ÷¶ÈÊý¾Ý*/
WORD wRefBetaE; /*ÎïÀí²ã×Ô¼º¼ÆËãµÄ²Î¿¼BetaÖµ£¬Ð­ÒéÕ»ÓÃÊÚȨ£¨µ÷¶È/SPS/·Çµ÷¶È£©ÓëÆä±È½Ï£¬È¡½ÏСֵ×÷Ϊ¿ÉÓ÷¢É书ÂÊ*/
#ifdef R9_SUPPORT
WORD wSpsFlag; /*SPSµ÷¶È±êÖ¾£¬0£º²»¿ÉÒÔ×¼±¸SPSÊý¾Ý´«Ê䣬1--¿ÉÒÔ×¼±¸SPSÊý¾Ý´«Êä*/
WORD wDrxActiveFlag;/*DRXʹÄܱêÖ¾£¬0--¹Ø±Õ£¬1--´ò¿ª*/
#endif
WORD wPhyChCorExsistFlag;/*E-PUCHÓëÆäËûÀàÐÍÎïÀíÐŵÀ²¢´æÓÚͬһ×Ó֡ͬһʱ϶µÄ±êÖ¾£¬ÔÚwEagchFlag»òÕßwNonSchFlag»òÕßwSpsFlagΪ1ʱÓÐЧ£¬0--²»²¢´æ£¬1--²¢´æ*/
WORD wEagchFlag; /*µ÷¶ÈÊÚȨÐÅÏ¢ÊÇ·ñÓÐЧµÄ±êʶ¡£0£ºÎÞЧ£»1£ºÓÐЧ*/
T_zTD_P_HSUPA_GRANT_INFO tGrant; /*ÊÚȨÐÅÏ¢£¬Ö»ÓÐÔÚwEagchFlag»òwSpsFlagָʾÓÐЧʱ²Å¿ÉÒÔ¶ÁÈ¡*/
WORD wHarqFlag; /*HARQÐÅÏ¢ÊÇ·ñÓÐЧµÄ±êʶ*/
WORD wSubFrame; /*ÓÃÓÚÎïÀí²ãÅбðЭÒéÕ»´¦ÀíÊÇ·ñ³¬Ê±µÄ×ÓÖ¡ºÅ*/
T_zTD_P_HARQ_PROCESS_STATUS tHarq; /*HARQµ¥½ø³ÌµÄACK/NACK½á¹ûÐÅÏ¢*/
}T_zTD_P_UPA_GRANT_HARQ_INFO;
typedef struct {
WORD wTchType; /*ÐŵÀÀàÐÍ£¬·ÖΪE-RUCCHºÍE-DCH*/
WORD wHarqId; /*ÓÃÓÚ±¾´ÎÊý¾Ý·¢Ë͵ÄHARQ ½ø³ÌID£¬0~7*/
WORD wRefBetaE; /*ÎïÀí²ã·¢ËÍÊý¾ÝµÄÔöÒæÒò×Ó*/
WORD wEtfci;
WORD wTbSize;
WORD wModuleType; /*±¾´Î·¢Ë͵ĵ÷ÖÆ·½Ê½ 0:QPSK; 1:16qam*/
WORD wRsn; /*ÈßÓà°æ±¾ºÅ£¬RSN µÈÓÚ0±íʾÐÂÊý¾Ý£¬RSN´óÓÚ0±íÊ¾ÖØ´«*/
WORD wSubFrame; /*ָʾ¸Ã´«Êä¿éµÄ·¢ËÍ×ÓÖ¡ºÅ*/
#ifdef R9_SUPPORT
WORD wSpsFlag; /*SPSÊý¾Ý±êÖ¾*/
WORD wPadding;
#endif
T_zTD_P_HSUPA_GRANT_INFO tGrant; /*»Ø´ø¸øÎïÀí²ãµÄÊÚȨÐÅÏ¢¡£ÊÇ·ñÐèÒª¶ÁÈ¡¸ÃÔªËØÄÚ²¿µÄ¾ø¶ÔÊÚȨֵ£¬ÎïÀí²ãÐèÒª¸ù¾ÝHARQ½ø³ÌID½øÐÐÅжϣ¬Ö»ÔÚµ÷¶ÈÊý¾ÝʱÓÐЧ*/
} T_zTD_PHSUPA_BUF_HEADER;
typedef struct {
T_zTD_PHSUPA_BUF_HEADER tBufHeader; /* HSUPAÊý¾Ý»º³åÇøÍ·ÐÅÏ¢*/
WORD awData[Z_TD_P_MAX_NO_OF_HSUPA_BYTES/2];
}T_zTD_P_HSUPA_UL_BUFFER;
/*==============================================================================
Ô­ÓT_zTD_P_mac_Set_Agch_Req_Ev( UMAC->PHY )
˵Ã÷: ÉϲãЭÒéջָʾÎïÀí²ã¿ªÊ¼/Í£Ö¹¼àÌýE-AGCHÐŵÀµÄÃüÁî
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wResult; /* ָʾÎïÀí²ãÊÇ·ñÍ£Ö¹¼àÌýE-AGCHÐŵÀ¡£0£º¼ÌÐø¼àÌý£»1£ºÍ£Ö¹¼àÌý*/
}T_zTD_P_mac_Set_Agch_Req_Ev;
#ifdef R9_SUPPORT
/*==============================================================================
Ô­ÓP_SYNC_CMD_RESP_EV( PHY->UMAC )
˵Ã÷: ÔÚÔöÇ¿Cell-PCH̬Ï£¬ÎïÀí²ãÊÕµ½HS-SCCHÉϵÄͬ²½ÃüÁîºó£¬·¢¸ÃÏûϢ֪ͨMAC×öÉÏÐÐͬ²½
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wPadding;
}T_zTD_P_Sync_Cmd_Resp;
/*==============================================================================
Ô­ÓP_CELL_RESEL_REQ_EV( UMAC->PHY )
˵Ã÷: ÔÚÔöÇ¿Cell-FACH̬Ï£¬MAC֪ͨÎïÀí²ã£¬Ð¡ÇøÖØÑ¡ÇëÇó
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wPadding;
}T_zTD_P_Cell_Resel_Req;
/*==============================================================================
Ô­ÓP_CELL_RESEL_CNF_EV( PHY->UMAC )
˵Ã÷: ÔÚÔöÇ¿Cell-FACH̬Ï£¬ÎïÀí²ã»Ø¸´MAC£¬Ð¡ÇøÖØÑ¡È·ÈÏ
==============================================================================*/
typedef struct {
WORD wMsg_id;
WORD wPadding;
}T_zTD_P_Cell_Resel_Cnf;
#endif
/************************************************************************/
/* RBCÈ«¾ÖÀàÐͶ¨Òå */
/************************************************************************/
/*10.3.6.41 Midamble Shift and burst type*/
typedef struct{
/*wMidamble_allocation_mode:0:default midamble,1:Common midamble,2:UE specific midamble*/
WORD wMidamble_allocation_mode;
/*wMidamble_configuration:Integer(2,4,6,8,10,12,14,16)*/
WORD wMidamble_configuration;
/*this IE is mandatory present,when wMidamble_allocation_mode is 2:UE specific midamble*/
WORD wMidamble_shift;
}T_zTD_P_mid_shift_bur_type;
/*10.3.6.51a Prach channelisation code 1.28 Mcps TDD*/
typedef struct{
/*
Enumerated(4/1)
wSpread_factor = 4
wChannelisation_code = 1
Enumerated(16/1)
wSpread_factor = 16
wChannelisation_code = 1
*/
WORD wSpread_factor;
WORD wChannelisation_code;
}T_zTD_P_CHANNELISATION_CODE;
/*10.3.6.51a PRACH Channelisation Code*/
typedef struct{
/*wChannelisation_code_number:1 to 4*/
WORD wChannelisation_code_number;
/*channelisation list*/
T_zTD_P_CHANNELISATION_CODE atChannelisation_code[Z_TD_P_MAX_PRACH_FPACH_CODE];
}T_zTD_P_Prach_Ch_code; /*9Word*/
/*10.3.6.35a FPACH info*/
typedef struct{
/*wTimeslot_number: (0..6)*/
WORD wTimeslot_number;
/*Integer(1..4)*/
WORD wWt;
/*channelisation code: (16/1..16/16)*/
T_zTD_P_CHANNELISATION_CODE tChannelisation_code;
/*10.3.6.41:T_zmidamble_shift_burst_type*/
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type;
}T_zTD_P_fpach_info; /*7Word*/
/*PRACH-FPACH*/
typedef struct{
/*10.3.6.84 Timeslots number:Integer(0..6)*/
WORD wTime_slot_number;
/*10.3.6.51a PRACH channelisation on code 1.28 Mcps TDD*/
T_zTD_P_Prach_Ch_code tPrach_channelisation_code;
/*10.3.6.41 Midamble shift and burst type*/
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type;
/*10.3.6.35a FPACH info*/
T_zTD_P_fpach_info tFpach_info;
}T_zTD_P_prach_fpach_info; /*20Word*/
/*10.3.6.91 Uplink DPCH power control info*/
typedef struct {
/*wUl_target_sir 0:not exist 1:exist*/
WORD wUl_target_sir_flg:1;
/*wPrimary_ccpch_tx_power_flg 0:not exist 1:exist*/
WORD wPrimary_ccpch_tx_power_flg:1;
/*
Real(-11..20 by step of 0.5dB);For 1.28 Mcps TDD this parameter
represents PRXdpchdes with range Integer(-120..-58) by step 1
wUl_target_sir = (x-(-120)/0.5 )
*/
WORD wUl_target_sir;
/* Integer(1,2,3)*/
WORD wTpc_step_size;
/* Integr(6...50)*/
WORD wPrimary_ccpch_tx_power;
/*1:¹À¼Æbeacon·Ëð 0:²»¹À¼Æ*/
WORD wBeacon_pl_est;
WORD wPadding;
}T_zTD_P_ul_dpch_power_ctrl;
/*10.3.6.96 Uplink Timing Advance Control*/
typedef struct {
/*Integer(1..8)*/
WORD wUl_Sync_Step_Size;
/*Integer(1..8)*/
WORD wUl_Sync_Freq;
/*0: Syn parameter not exist; 1:Syn parameter exist*/
WORD wSync_Param_Flg;
/*SYNC_UL codes bitmap: Bitstring(8)*/
WORD wSynl_up_codes;
/*FPACH info 10.3.6.35a*/
T_zTD_P_fpach_info tFpach_info;
/*PRXupPCHdes: Integer(-120..-58 by step 1)
wPrx_up_pch_des = (x-(-120))
*/
WORD wPrx_up_pch_des;
/*Max SYNC_UL Transmissions,Integer(1,2,4,8)*/
WORD wMax_sync_ul_transmissions;
/*Integer(0,1,2,3)*/
WORD wPower_ramp_step;
WORD wUarFcn_flg;
WORD wUppch_chip_shift_flg;
WORD wUarFcn;
WORD wUppch_chip_shift;
}T_zTD_P_ul_timing_advance;
/*10.3.6.10 Common timeslot info*/
typedef struct{
/*Enumerated(Frame,Timeslot) 0:Frame 1:Timeslot*/
WORD wSecond_interleaving_mode;
/*TFCI coding Integer(4,8,16,32)*/
WORD wCfci_coding;
/*Real(0.40..1.0 by step of 0.04)
wPuncturing_limit = (x-0.40)/0.04
*/
WORD wPuncturing_limit;
/*Repetition period Integer(1,2,4,8,16,32,64)*/
WORD wRepetition_period;
/*Integer(1..bRepetition_period-1)*/
WORD wRepetition_length;
}T_zTD_P_common_ts_info;
/*10.3.6.37 Individual timeslot info*/
typedef struct{
/*10.3.6.84 :Integer(0..6)*/
WORD wTimeslot_number;
/*TFCI existence 0:false 1:true*/
WORD wTfci_existence;
/*10.3.6.41 Midamble shift and burst type*/
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type;
/*Enumerated(QPSK,8PSK) 0:QPSK 1:8PSK*/
WORD wModulation;
/*Enumerated(0,1,16/SF)*/
WORD wSs_tpc_symbols;
/*Integer(1..15)*/
WORD wAdditional_tpc_ss_symbols_flg;
WORD wAdditional_tpc_ss_symbols;
}T_zTD_P_individual_ts_info;
/*10.3.6.17 Downlink channelisation codes*/
/*Consecutive codes: First Individual timeslot info and first timeslot channelisation codes*/
typedef struct{
/*channelisation code :16/x*/
T_zTD_P_CHANNELISATION_CODE tFirst_channelisation_code;
/*channelisation code :16/x*/
T_zTD_P_CHANNELISATION_CODE tLast_channelisation_code;
}T_zTD_P_consecutive_codes;
/*10.3.6.17*/
typedef struct{
WORD wType;
union{
/*Consecutive codes*/
T_zTD_P_consecutive_codes tdown_channelisation_code;
/*Each bit indicates the availability of a channelisation code for SF16*/
WORD wChannelisation_code_bitmap;
}tChannelisation_code;
}T_zTD_P_dl_ch_codes;
/*
typedef struct{
WORD wSf; //À©ÆµÒò×Ó£¬È¡Öµ1»òÕß16//
WORD wChCodeNum; //ÐŵÀ»¯Âë¸öÊý£¬È¡Öµ:1 to 16//
WORD awChCode[16]; //ÐŵÀ»¯Â룬ȡֵ1µ½SF//
}T_zTD_P_dl_ch_codes;
*/
/*10.3.6.32 Downlink Timeslots and Codes*/
typedef struct{
T_zTD_P_dl_ch_codes tDown_channelisation_code;
T_zTD_P_individual_ts_info tIndividual_timeslot_info;
}T_zTD_P_dl_ts_codes_element;
/*10.3.6.32*/
typedef struct{
WORD wTs_and_ch_number;
T_zTD_P_dl_ts_codes_element atDownlink_timeslots_code[Z_TD_P_MAX_DL_TS];
}T_zTD_P_dl_ts_codes;
typedef struct{
WORD wTfcs_id;
/*time info*/
WORD wActive_time;
WORD wDuration;
/*10.3.6.10 Common timeslot info*/
T_zTD_P_common_ts_info tCommon_timeslot_info;
/*10.3.6.32 Downlink DPCH timeslots and codes*/
T_zTD_P_dl_ts_codes tDownlink_dpch_timeslot_codes;
}T_zTD_P_dl_cctrch_list;
/*10.3.6.94 uplink channelisation codes*/
typedef struct{
WORD wNum;
T_zTD_P_CHANNELISATION_CODE atUplink_channelisation[2];
}T_zTD_P_ul_ch_codes;
/*10.3.6.32 uplink Timeslots and Codes*/
typedef struct{
T_zTD_P_ul_ch_codes tUplink_channelisation_code;
T_zTD_P_individual_ts_info tIndividual_timeslot_info;
}T_zTD_P_ul_ts_codes_element;
typedef struct{
WORD wTs_and_channelisation_number;
T_zTD_P_ul_ts_codes_element atUplink_timeslots_code[Z_TD_P_MAX_UL_TS];
}T_zTD_P_ul_timeslots_codes;
typedef struct{
WORD wTfcs_id;
/*time info*/
WORD wActive_time;
WORD wDuration;
/*10.3.6.10 Common timeslot info*/
T_zTD_P_common_ts_info tCommon_timeslot_info;
/*10.3.6.32 Downlink DPCH timeslots and codes*/
T_zTD_P_ul_timeslots_codes tUplink_dpch_timeslot_codes;
}T_zTD_P_ul_cctrch_list;
typedef struct{
/*Integer(0..6)*/
WORD wTimeslot_number;
/*Enumerated((16/1)..(16/16))*/
T_zTD_P_CHANNELISATION_CODE tChannelisation_code;
/*Midamble allocation mode
Enumerated(Default Midamble,Common Midamble,UE specific Midamble)
wMidamle_allocation_mode=0,1,2
*/
WORD wMidamble_allocation_mode;
/*Midamble configuration
Integer(2,4,6,8,10,12,14,16)
*/
WORD wMidamble_configuration;
/*Integer(0..15)*/
WORD wMidamble_shift;
/*
Integer(-7..8)
wAck_nack_power_offset = x-(-7)
x=wAck_nack_power_offset - 7
*/
WORD wAck_nack_power_offset;
/*
Integer(-120..-58)
wPRXhs_sich = x-(-120);
x = wPRXhs_sich - 120;
*/
WORD wPRXhs_sich;
/*
Integer(1,2,3)
*/
WORD wTpc_step_size;
}T_zTD_P_hs_sich;
typedef struct{
/*
//scchµÄ½ÓÊÕÆµÂÊ
WORD wScch_rx_freq;
*/
/*Integer(0..6)*/
WORD wTimeSlot_number;
/*first Channelisation code*/
T_zTD_P_CHANNELISATION_CODE tFirst_channelisation_code;
/*second channelisation code*/
T_zTD_P_CHANNELISATION_CODE tSecond_channelisation_code;
/*Midamble allocation mode
Enumerated(Default Midamble,Common Midamble,UE specific Midamble)
wMidamle_allocation_mode=0,1,2
*/
WORD wMidamble_allocation_mode;
/*
This IE is mandatory present when the value of the IE "Midamble Allocation Mode"
is "UE specific Midamble" and not needed otherwise.
Integer(0..15)
*/
WORD wMidamble_shift;
/*
Integer(2,4,6,8,10,12,14,16)
*/
WORD wMidamble_configuration;
/*
wBler_targetµÄ·¶Î§Îª0ÖÁ63£»ÎïÀí²ãÊÕµ½ºóÒª*£¨-0.05£©µÃµ½Êµ¼ÊÖµ
*/
WORD wBler_target;
/*sich info*/
T_zTD_P_hs_sich tHs_sich;
}T_zTD_P_hs_scch;
typedef struct{
/*Midamble allocation mode
Enumerated(Default Midamble,Common Midamble,UE specific Midamble)
wMidamle_allocation_mode=0,1,2
*/
WORD wMidamble_allocation_mode;
/*Midamble configuration
Integer(2,4,6,8,10,12,14,16)
*/
WORD wMidamble_configuration;
/*Integer(0..15)*/
WORD wMidamble_shift;
}T_zTD_P_hs_dpsch_midamble;
typedef struct{
WORD wNumber_process;
/*memory partitioning 0:implicit 1:explicit*/
WORD wMemory_partitioning;
DWORD dwProcess_memory_size[Z_TD_P_MAX_H_PROCESS];
}T_zTD_P_hs_harq_info;
typedef struct {
WORD wTime_slot_number;
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type; /*E-PUCHµÄmidamble modeÖ»ÄÜÈ¡0»ò2*/
}T_zTD_P_epuch_midam;
typedef struct{
WORD wSnpl_type; /*0:Íø²àδָ¶¨£¬¿ÉÖ±½ÓÌîSNPL=9; 1£ºtype1; 2£ºtype2*/
WORD wPrx_base_des; /*Reference desired power level for E-PUCH,ʵ¼ÊÖµ=x-112£¬È¡Öµ·¶Î§0-62.*/
WORD wBeacon_pl_est; /*1-·Ëð¹À¼ÆÊ±¿¼ÂÇbeacon£»0-²»¿¼ÂÇ*/
WORD wTpc_step_size; /*Pe-baseÖеÄstep²ÎÊý¡£Êý¾Ý·¶Î§£º1..3*/
WORD wPow_ctrl_gap; /*×ÓÖ¡¸öÊý£¬TPCʱ¼äÍ£¶ÙÃÅÏÞ£¬0..255*/
WORD wSync_step_size; /*µ÷ÕûÉÏÐд«Ê䶨ʱµÄ²½³¤,1..8*/
WORD wSync_freq; /*µ÷ÕûÉÏÐд«Ê䶨ʱµÄƵÂÊ,1..8*/
WORD wPadding;
}T_zTD_P_epuch_pwr_info;
typedef struct{
WORD wTime_slot_number;
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type;
T_zTD_P_CHANNELISATION_CODE tFirst_channelisation_code;
T_zTD_P_CHANNELISATION_CODE tSecond_channelisation_code;
}T_zTD_P_hs_eagch;
typedef struct{
WORD wTime_slot_number;
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type; /*E-HICHµÄmidamble modeÖ»ÄÜÈ¡0»ò2*/
T_zTD_P_CHANNELISATION_CODE tChannelisation_code;
}T_zTD_P_hs_ehich;
typedef struct{
WORD wRdi_ind; /*0:RDI²»´æÔÚ 1:RDI´æÔÚ*/
WORD wEagch_num; /*E-AGCHÐŵÀÐÅÏ¢Áбí*/
T_zTD_P_hs_eagch atEagch_config[Z_TD_P_MAX_EAGCH_NUM];
WORD wTpc_step_size; /*E-AGCHµÄ¹¦¿Ø²½³¤,1..3*/
WORD wEagch_bler_target; /*ʵ¼ÊÖµ=(x-63)*0.05£¬È¡Öµ·¶Î§0~63*/
WORD wEhich_num; /*E-HICHÐŵÀÐÅÏ¢Áбí*/
T_zTD_P_hs_ehich atEhich_config[Z_TD_P_MAX_SCH_EHICH_NUM];
WORD awEi[Z_TD_P_MAX_SCH_EHICH_NUM]; /*ÿ¸öE-HICHµÄ±êʶ,ȡֵ·¶Î§0~3*/
WORD wEpuch_num; /*E-PUCHÐŵÀÐÅÏ¢Áбí*/
T_zTD_P_epuch_midam atEpuch_midam_list[Z_TD_P_MAX_EPUCH_TS_NUM];
}T_zTD_P_hs_sch_tr;
typedef struct{
WORD wEucch_num; /*e-ucch¸öÊý£¬1~8*/
WORD wEpuch_act_time; /*E-PUCHÆðЧ֡ºÅ£¬0~255*/
WORD wEpuch_sub_frame; /*E-PUCHÆðЧ×ÓÖ¡ºÅ£¬0~1*/
WORD wEpuch_rep_prd; /*E-PUCHÖØ¸´ÖÜÆÚ£¬1/2/4/8/16/32¸öTTI*/
WORD wEpuch_rep_len; /*E-PUCH×ÊÔ´³¤¶È£¬È¡Öµ1..wEpuch_rep_prd-1,wEpuch_rep_prd=1ʱȡֵΪ1*/
WORD wEpuch_prri; /*E-PUCH×î´ó¹¦ÂÊ×ÊÔ´£¬1~32*/
WORD wEpuch_num; /*E-PUCHÐŵÀÐÅÏ¢Áбí*/
T_zTD_P_epuch_midam atEpuch_midam_list[Z_TD_P_MAX_EPUCH_TS_NUM];/*E-PUCHʱ϶ºÍMidÂëÐÅÏ¢*/
T_zTD_P_CHANNELISATION_CODE tChannelisation_code; /*E-PUCHÐŵÀ»¯Âë*/
WORD wEhich_sig_group_idx; /*E-HICHÐŵÀËùʹÓõÄSignatureSeqIndex£¬0~19.25221 5A.3.17*/
T_zTD_P_hs_ehich tEhich_config; /*E-HICHÐŵÀÅäÖÃ*/
}T_zTD_P_hs_non_sch_tr;
typedef struct{ /*L1ʹÓÃÉÏÐÐDPCHʱ϶ºÍÐŵÀ»¯ÂëÀ´½¨Á¢ÉÏÐÐDPCHºÍPLCCHµÄÓ³Éä¹ØÏµ*/
WORD wUl_dpch_ts; /*PLCCHËù¶ÔÓ¦ÉÏÐÐDPCHʱ϶*/
WORD wPlcch_seq_num; /*1..14£¬º¬Òå´ý²é*/
WORD wPlcch_ts; /*0..6*/
WORD wTpc_target_rate; /*0..10*/
T_zTD_P_CHANNELISATION_CODE tUl_dpch_channelsation_code; /*PLCCHËù¶ÔÓ¦ÉÏÐÐDPCHÂë*/
T_zTD_P_CHANNELISATION_CODE tPlcch_channelisation_code;
}T_zTD_P_plcch_info;
#ifdef R9_SUPPORT
typedef struct{
WORD wHs_scch_recv_freq;/*HS-SCCH/HS-SICH¶ÔÓ¦µÄƵµã*/
WORD wPadding;
T_zTD_P_hs_scch tHs_scch_configuration;
}T_zTD_P_mc_hs_scch;
/*Rx or Tx Pattern*/
typedef struct{
WORD wRepetition_period;/*ÖØ¸´ÖÜÆÚ£¬È¡Öµ·¶Î§1,2,4,8,16,32*/
WORD wRepetition_length; /*ÖØ¸´³¤¶È£¬È¡Öµ·¶Î§1..bRepetition_period-1£¬µ±wRepetition_period=1ʱ¸ÃÖµÎÞЧ*/
}T_zTD_P_pattern;
/*Hsdsch sps²Ù×÷¶ÔÓ¦µÄHarqÐÅÏ¢*/
typedef struct{
WORD wNumber_process;/*Hs-scch sps²Ù×÷ËùÄÜʹÓõÄHARQ½ø³Ì¸öÊý£¬È¡Öµ·¶Î§1~8*/
WORD wPadding;
DWORD dwProcess_memory_size;/*Hs-scch sps²Ù×÷ËùÄÜʹÓõÄ×ܵÄÐéÄâIR bufferµÄ´óС£¬È¡Öµ·¶Î§£º800~16000 by step of 800£¬
17600~32000 by step of 1600£¬36000~80000 by step of 4000£¬88000~160000 by step of 8000£¬ 176000~304000 by step of 16000*/
}T_zTD_P_hsdsch_sps_harq_info;
/*ÓÃÓÚsps²Ù×÷µÄHs-dschÂë×ÊÔ´ÐÅÏ¢:µ±wStartCodeInfo¶ÔӦΪ16/16£¬wStopCodeInfo¶ÔӦΪ1/16ʱ£¬±íʾSFΪ1*/
typedef struct
{
WORD wStartCodeInfo; /*ÆðʼÐŵÀ»¯ÂëÐÅÏ¢;ȡֵΪ0¡­.15;·Ö±ð¶ÔÓ¦µÄÐŵÀ»¯ÂëΪ1/16¡­..16/16*/
WORD wStopCodeInfo;/*½áÊøµÄÐŵÀ»¯ÂëÐÅÏ¢;ȡֵΪ0¡­.15;·Ö±ð¶ÔÓ¦µÄÐŵÀ»¯ÂëΪ1/16¡­..16/16*/
}T_zTD_P_code_resource_info;
/*Hs-dsch¶ÔÓ¦µÄ³õʼspsÐÅÏ¢*/
typedef struct
{
WORD wTsInfo;/*·ÖÅäµÄÓÃÓÚspsµÄHs-pdsch¶ÔÓ¦µÄʱ϶ÐÅÏ¢£¬µÍÎåλÓÐЧ£¬Ö¸¶¨Î»ÖÃλ±íʾÏàӦʱ϶ÓÃÓÚsps²Ù×÷¡£*/
WORD wActTime;/*¼¤»îʱ¼ä£¬È¡Öµ·¶Î§0~255*/
WORD wSubFrameNum; /*×ÓÖ¡ºÅ£¬È¡Öµ0£¬1*/
WORD wInitTbsIdx;/*³õʼTbsË÷ÒýºÅ£¬È¡Öµ·¶Î§0~3*/
WORD wInitRxPatternIdx; /*³õʼRxPatternË÷ÒýºÅ£¬È¡Öµ·¶Î§0~3*/
WORD wHssichIdx; /*hssichË÷ÒýºÅ£¬È¡Öµ·¶Î§0~3*/
WORD wMod; /*ȡֵ0±íʾmodQPSK£¬1±íʾ mod16QAM*/
WORD wPadding;
T_zTD_P_code_resource_info tCodeResourceInfo; /*HS-PDSCHÐŵÀ»¯ÂëÐÅÏ¢£»µ±StartΪ16£¬stopΪ1ʱ£¬±íʾsfΪ1*/
}T_zTD_P_init_hsdsch_sps_info;
/*Edch¶ÔÓ¦µÄ³õʼspsÐÅÏ¢*/
typedef struct
{
WORD wEucch_num;/*e-ucch¸öÊý£¬1~8*/
WORD wTsInfo;/*·ÖÅäµÄÓÃÓÚspsµÄE-DCH¶ÔÓ¦µÄʱ϶ÐÅÏ¢£¬µÍÎåλÓÐЧ£¬Ö¸¶¨Î»ÖÃλ±íʾÏàӦʱ϶ÓÃÓÚsps²Ù×÷*/
WORD wEpuch_prri;/*E-PUCH×î´ó¹¦ÂÊ×ÊÔ´£¬1~32*/
WORD wActTime;/*¼¤»îʱ¼ä£¬È¡Öµ·¶Î§0~255*/
WORD wSubFrameNum;/*×ÓÖ¡ºÅ£¬È¡Öµ0£¬1*/
WORD wInitTxPatternIdx; /*³õʼTxPatternË÷ÒýºÅ£¬È¡Öµ·¶Î§0~3*/
T_zTD_P_CHANNELISATION_CODE tCodeResourceInfo; /*EdchÐŵÀ»¯ÂëÐÅÏ¢*/
}T_zTD_P_init_edch_sps_info;
/*HSDSCHµÄSPSÐÅÏ¢*/
typedef struct{
WORD wHssichNum; /*hs-sichÐŵÀ¸öÊý*/
WORD wPatternNum;/*Rx Pattern¸öÊý£¬È¡Öµ·¶Î§1~4*/
WORD wTbsNum; /*Tb size¸öÊý£¬È¡Öµ·¶Î§1~4*/
WORD wInitSpsInfoFg;/*0:tInitSpsInfoÎÞЧ£»1:tInitSpsInfoÓÐЧ*/
WORD awTbs[Z_TD_P_MAX_HSDSCH_TBS_NUM];/*ÿ¸öTbSizeµÄË÷Òý£¬È¡Öµ·¶Î§1~63*/
T_zTD_P_pattern atRxPattern [Z_TD_P_MAX_HSDSCH_RX_PATTERN_NUM];
T_zTD_P_hsdsch_sps_harq_info tHarqInfo;
T_zTD_P_hs_sich atHssich [Z_TD_P_MAX_HS_SCCH];
T_zTD_P_init_hsdsch_sps_info tInitSpsInfo;
}T_zTD_P_hsdsch_sps_info;
/*EDCHµÄSPSÐÅÏ¢*/
typedef struct{
WORD wEhich_sig_group_idx; /*E-HICHÐŵÀËùʹÓõÄSignatureSeqIndex£¬0~19.25221 5A.3.17*/
WORD wInitSpsInfoFg;/*0:tInitSpsInfoÎÞЧ£»1:tInitSpsInfoÓÐЧ*/
WORD wPadding;
WORD wPatternNum; /*TxPattern¸öÊý*/
T_zTD_P_pattern atTxPattern [Z_TD_P_MAX_EDCH_TX_PATTERN_NUM];
T_zTD_P_hs_ehich tEhich_config;
T_zTD_P_init_edch_sps_info tInitSpsInfo;
}T_zTD_P_edch_sps_info;
/*¿ØÖÆÐŵÀHSSCCH DRX²Ù×÷ÐÅÏ¢*/
typedef struct {
WORD wInactivity_threshold_flg; /*1-±íʾwInactivity_thresholdÓÐЧ£»0-±íʾwInactivity_thresholdÎÞЧ*/
WORD wEnabling_delay; /*ÆðЧÑÓ³Ù£¬µ¥Î»£ºÎÞÏßÖ¡£¬È¡Öµ·¶Î§0£¬1£¬2£¬4£¬8£¬16£¬32£¬64£¬128£¬infinity£¨0xffff£©*/
WORD wDrx_cycle;/*DRXÖÜÆÚ£¬µ¥Î»×ÓÖ¡£¬È¡Öµ·¶Î§1£¬2£¬4£¬8£¬16£¬32£¬64£¬128*/
WORD wInactivity_threshold;/*DRXÖÜÆÚµÄÈ¥¼¤»îÃÅÏÞ£¬µ¥Î»£º×ÓÖ¡£¬È¡Öµ·¶Î§1£¬2£¬4£¬8£¬16£¬32£¬64£¬128£¬256£¬512£¬infinity£¬½öµ±wInactivity_threshold_flgΪ1ʱÓÐЧ*/
WORD wDrx_offset; /*DRXÆ«ÒÆ£¬µ¥Î»×ÓÖ¡£¬È¡Öµ·¶Î§0¡­63*/
WORD wPadding;
}T_zTD_P_hsscch_ctrl_ch_drx;
/*¿ØÖÆÐŵÀEAGCH DRX²Ù×÷ÐÅÏ¢*/
typedef struct {
WORD wDrx_cycle;/*DRXÖÜÆÚ£¬µ¥Î»×ÓÖ¡£¬È¡Öµ·¶Î§1£¬2£¬4£¬8£¬16£¬32£¬64£¬128*/
WORD wDrx_offset;/*DRXÆ«ÒÆ£¬µ¥Î»×ÓÖ¡£¬È¡Öµ·¶Î§0¡­63*/
}T_zTD_P_eagch_ctrl_ch_drx;
/*¹²ÏíÐŵÀµÄͬ²½Ï¢*/
typedef struct {
WORD wOut_of_sync_win; /*ʧ²½´°£¬40,80,160,320,640,µ¥Î»ms*/
WORD wHsscch_tpc_step_size;/*µ±ÏÂÐÐDPCH¡¢EAGCH¶¼Ã»ÓÐÅäÖÃʱ¸ÃÖµÓÐЧ£»È¡ÖµÎª1£¬2£¬3*/
/*N312,N313,N315*/
WORD wN312;
WORD wN313;
WORD wN315;
WORD wPadding;
}T_zTD_P_share_ch_sync_para;
/*PCH ̬ÏÂDPAÓ³Éäµ½DCCH/DTCHʱ£¬¶ÔÓ¦µÄÅäÖÃÐÅÏ¢*/
typedef struct
{
WORD wrec_win_size;/*DCCH/DTCH¶ÔÓ¦µÄ½ÓÊÕ´°´óС£¬1~16£¬µ¥Î»£º×ÓÖ¡*/
WORD wH_rnti;/*½ÓÊÕÏÂÐÐHS-SCCHʱÓõ½µÄUE ±êʶ*/
WORD wBcchHrnti; /*ÔÚÏÂÐеÚÒ»ÌõHS-SCCHÉϽÓÊÕBCCHÉϵÄÏûϢʱÓõ½µÄרÓÃUE±êʶ*/
WORD wHS_scch_num;/*HS-SCCH¸öÊý*/
WORD wPadding;
T_zTD_P_hs_dpsch_midamble tHs_pdsch_midamble_cfg;
T_zTD_P_hs_scch atHs_scch_configuration[Z_TD_P_MAX_HS_SCCH]; /*HS-SCCHÅäÖÃÐÅÏ¢£¬ÓÃÓÚBCCHºÍDCCH/DTCH½ÓÊÕ£¬½ÓÊÕBCCHʱֻ¼àÌýµÚÒ»ÌõHs-ScchÐŵÀ*/
T_zTD_P_hs_harq_info tHs_harq_info;
}T_zTD_P_Dcch_dtch_rec_para;
/*DPAÓ³Éäµ½PCCHʱ£¬¶ÔÓ¦µÄÅäÖÃÐÅÏ¢*/
typedef struct
{
T_zTD_P_hs_dpsch_midamble tHs_pdsch_midamble_cfg;
T_zTD_P_code_resource_info tCode_res_info;
WORD wSubChSize;/*Ѱºô×ÓÐŵÀ´óС£¬µ¥Î»£ºÖ¡£»1~3*/
WORD wTbsNum;/*TBS list¶ÔÓ¦µÄ¸öÊý*/
WORD awTbsList[2];
WORD wTrri; /*¿ÉÓÃÓÚHSPDSCHµÄʱ϶×ÊÔ´ÐÅÏ¢£¬bit0ÖÃλ±êʶTS0¿ÉÓã¬bit1ÖÃλ±êʶTS2¿ÉÓã¬...bit5ÖÃλ±êʶTS6¿ÉÓ㬵Í6λÓÐЧ£»TS1²»ÓÃ*/
}T_zTD_P_pcch_relate_info;
/*µ±Cell-FACH̬֧³ÖHSDSCHµÄDRX²Ù×÷ʱ£¬¶ÔÓ¦µÄDRXÐÅÏ¢*/
typedef struct
{
WORD wT321;/*¼àÌý¶¨Ê±Æ÷£¬È¡Öµ·¶Î§£º100£¬200£¬400£¬800ms*/
WORD wDrx;/*ȡֵ·¶Î§£»4£¬8£¬16£¬32Ö¡*/
WORD wRx_burst; /*ȡֵ·¶Î§£»1£¬2£¬4£¬8£¬16Ö¡*/
WORD wPadding;
}T_zTD_P_fach_dpa_drx_info;
/*ÅäÖøøL1µÄ¹«¹²ERNTIÁбí*/
typedef struct {
WORD wStartErnti;/*16bitµÄÆðʼE-RNTIÐÅÏ¢*/
WORD wGroupNum; /*·¶Î§1...32*/
WORD wErntiNumPerGroup; /*ȡֵ1...2*/
WORD wPadding;
}T_zTD_P_CommonErntiInfo;
/*ÅäÖÃFACH»òIDLE̬ϵÄDPAÐÅÏ¢*/
typedef struct
{
WORD wPower_ctrl_gap; /*HS-SICHµÄ´«Êä¼ä¸ôÃÅÏÞ£¬×ÓÖ¡¸öÊý£¬0~255*/
WORD wPl_compensation_switch; /*1:HS-SICHʵ¼Ê´«Êä¼ä¸ôСÓÚÃÅÏÞʱÐè×÷·Ëð²¹³¥ 0:²»×÷·Ëð²¹³¥*/
WORD wH_rnti_type; /*HRNTIµÄÀàÐÍ£»0-¹«¹²HRNTI£»1-רÓÃHRNTI*/
WORD wH_rnti;/*½ÓÊÕÏÂÐÐHS-SCCHʱÓõ½µÄUE ±êʶ*/
WORD wBcchHrnti; /*ÔÚÏÂÐеÚÒ»ÌõHS-SCCHÉϽÓÊÕBCCHÉϵÄÏûϢʱÓõ½µÄרÓÃUE±êʶ*/
WORD wTs0Ind;/*1£º±íÊ¾Íø²àÔÊÐí½«ÏÂÐÐHSPDSCHÓÃÓÚTs0£¬0£º±íʾ²»ÔÊÐí*/
WORD wHS_scch_num;/*HS-SCCH¸öÊý*/
WORD wHsdpa_drx_fg;/*1£ºµ±Ç°HsdpaÖ§³ÖDRX²Ù×÷£»0£º²»Ö§³ÖDrx²Ù×÷£»wH_rnti_type==1ʱÓÐЧ*/
WORD wPadding;
T_zTD_P_hs_scch atHs_scch_configuration[Z_TD_P_MAX_HS_SCCH];
T_zTD_P_hs_dpsch_midamble tHs_pdsch_midamble_cfg;
T_zTD_P_hs_harq_info tHs_harq_info;
T_zTD_P_fach_dpa_drx_info tHsdpa_drx_info;
}T_zTD_P_fach_dpa_info;
/*FACH»òIDLE̬ϵÄÔöÇ¿UpaÅäÖÃ*/
typedef struct
{
WORD wE_rnti_type;/*µ±Ç°Ê¹ÓÃE-RNTIÀàÐÍ£¬£»1-רÓÃERNTI£»0-¹«¹²ERNTI*/
WORD wE_rnti; /*רÓõÄERNTI£¬½öµ±wE_rnti_type=1ʱÓÐЧ */
WORD wReset_flg; /*0:not reset 1:reset*/
WORD wHarq_info; /**/
WORD wN_ehich; /*E-PUCHºÍE-HICHÏà¸ôµÄʱ϶Êý,4~15*/
WORD wPrimary_ccpch_tx_power;/* Integer(6..43)dBm */
WORD wMax_allowed_ul_tx_power;/*Integer(-50..33) bMax_allowed_ul_tx_power = (x -(-50)) */
WORD wUppch_chip_shift_flg;
WORD wUppch_chip_shift;
WORD wPadding;
T_zTD_P_CommonErntiInfo tCommonErnti;
T_zTD_P_epuch_pwr_info tEpuch_pwr_info;
T_zTD_P_hs_sch_tr tHs_sch_tr_info;
}T_zTD_P_fach_upa_info;
/*ÅäÖÃPCH̬ϵÄDPAÐÅÏ¢*/
typedef struct
{
WORD wTs0Ind;/*1£º±íÊ¾Íø²àÔÊÐí½«ÏÂÐÐHSPDSCHÓÃÓÚTs0£¬0£º±íʾ²»ÔÊÐí*/
WORD wDcch_dtch_rec_fg;/*µ±Ç°ÊÇ·ñÖ§³Ö½ÓÊÕDTCHºÍDCCH£»0£º²»Ö§³Ö£»1£ºÖ§³Ö*/
T_zTD_P_Dcch_dtch_rec_para tDcch_dtch_rec_para; /*Dcch/DtchÉϵĽÓÊÕÅäÖÃÐÅÏ¢£¬½öµ±wDcch_dtch_rec_fg=1ʱÓÐЧ*/
T_zTD_P_pcch_relate_info tPcch_info; /*PcchÉϵĽÓÊÕÅäÖÃÐÅÏ¢£¬½öµ±wDcch_dtch_rec_fg=0ʱÓÐЧ*/
}T_zTD_P_pch_dpa_info;
#endif
/**************************************************************************
* CSRÈ«¾ÖÊý¾ÝÀàÐͶ¨Òå *
**************************************************************************/
typedef struct{
WORD wFreq_start_range;
WORD wFreq_end_range;
}T_zTD_P_frequency_range;
typedef struct{
WORD wFrequency;
WORD wRssi;
}T_zTD_P_scan_result;
typedef struct{
WORD wCell_parameter_id;
WORD wPccpch_rscp;
}T_zTD_P_cell_params;
/******************************************************
RRC->PHY
¹¦ÄÜ:
¿ÉÄܳöÏÖµÄÔÚ³õʼ״̬£¬IDLE̬£¬CELL_PCH̬£¬CELL_URA̬£¬CELL_FACH̬£»
ÓзþÎñÐ¡ÇøÊ±£¬ÓÅÏȽÓÊÕpage¡¢sccpchºÍÔ­À´µÄ²âÁ¿ÈÎÎñ£¬ÔÚÊ£ÓàµÄ¿ÕÏÐʱ¼äÄÚ£¬
¾¡¿ì½øÐÐfreq scanµÄ¹¤×÷¡£
½á¹¹:
T_zP_TD_frequency_scan_req
******************************************************/
typedef struct
{
WORD wMsgId; //delt1123
/*ɨÃèµÄƵ¶Î·¶Î§:1~32*/
WORD wNumFreqRange;
WORD wSeqNum; /*¶¨Ò嵱ǰµÄɨƵÏûÏ¢ÐòºÅ,·¶Î§0-65535*/
WORD wPadding;
/*
wFreqStartRange:ÆðʼƵµãµÄUARFCN,·¶Î§9254~10121
wFreqEndRange:½áÊøÆµµãµÄUARFCN,·¶Î§:9254~1-121
*/
T_zTD_P_frequency_range atFrequencyRange[Z_TD_P_MAX_FREQSCAN_FREQ_NUM];
}T_zTD_P_frequency_scan_req;
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_abort_freq_scan_cnf;
/******************************************************
RRC->PHY
¹¦ÄÜ:
Í£Ö¹L1ƵÂÊɨÃè
½á¹¹:
T_zP_TD_abort_freq_scan_req,¿Õ½á¹¹
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_abort_freq_scan_req;
/******************************************************
RRC->PHY
¹¦ÄÜ:
L1Íê³ÉɨƵºó£¬Í¨¹ýÏûÏ¢P_FREQUENCY_SCAN_IND
Éϱ¨²âÁ¿½á¹û£¬Éϱ¨µÄRSSIµÄÖµÊÇÒ»¸öS16ÀàÐÍ£¬¸ÃÖµ
Ϊʵ¼Ê²âÁ¿µÄRSSI£¨dbm£©£«100£»
½á¹¹:
T_zP_TD_frequency_scan_ind
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wNoOfRssiMeas; /*·µ»ØµÄRSSI²âÁ¿½á¹ûµÄÊýÄ¿,·¶Î§:1~32 */
WORD wSeqNum; /*·µ»ØµÄɨƵÏûÏ¢ÐòºÅ,·¶Î§0-65535*/
WORD wPadding;
/*
T_scan_result:
wFrequency:ƵµãºÅ,·¶Î§Îª9254~10121
swRssiÿ¸öƵµãµÄRSSIÖµ,ÖµµÄʵ¼Ê·¶Î§ÊÇʵ¼ÊȡֵµÄRSSI+100,ЭÒéȡֵ-100~-25,
´Ë×Ö¶ÎȡֵΪ0~75
*/
T_zTD_P_scan_result atRssiResult[Z_TD_P_MAX_RSSI_RESULTS_NUM]; //32 delete1123
}T_zTD_P_frequency_scan_ind;
/******************************************************
PHY->RRC
¹¦ÄÜ:
Ö¸¶¨ÆµµãÉϲéÕÒÖ¸¶¨ÊýÄ¿Ð¡Çø,Èç¹ûµ±Ç°ÒÑÓзþÎñÐ¡Çø,L1ÐèҪͬʱ±£³Ö·þ
ÎñÐ¡ÇøÍ¬²½,ÒÔ¼°½ÓÊÕѰºô¡¢SCCPCHÏÂÐÐÊý¾ÝµÈ.Èç¹ûÊÕµ½Ñ°ºôµÈÇé¿öÐè
ÒªÖжÏL1Ð¡ÇøËÑË÷,ÖжϺóL1²»ÔÙÏòЭÒéÕ»Éϱ¨ÒÑ·¢ÏÖÐ¡ÇøÐÅÏ¢.
Èç¹û num_of_cell_idÈ¡0,ÇëÇóL1ÔÚÖ¸¶¨ÆµµãÉÏäËÑÐ¡ÇøÂú×ãmin_rscp_
threshold ÃÅÏÞµÄnum_of_result¸öÐ¡ÇøÉϱ¨.
Èç¹ûnum_of_cell_idÈ¡·Ç0Öµ£¬ÇëÇóL1ÔÚÖ¸¶¨cell_parameter_idµÄÐ¡ÇøÁÐ
±íÖÐËÑË÷Âú×ãwMinRscpÃÅÏÞµÄÐ¡ÇøÉϱ¨.
½á¹¹:T_zP_TD_cell_search_req
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wSeqNum; /*¶¨Ò嵱ǰµÄcell searchÏûÏ¢ÐòºÅ¡£Êý¾Ý·¶Î§£º0~65535 */
/*ƵµãºÅ9254~10121*/
WORD wFrequency;
/*ËÑË÷ÀàÐÍ
0:·µ»ØÖ¸¶¨ÆµµãµÄ×îÇ¿Ð¡Çø
1:·µ»ØÖ¸¶¨ÆµµãµÄÐ¡ÇøÁбí
2:·µ»ØÖ¸¶¨cell_parameter_id µÄÐ¡Çø
*/
WORD wSearchType;
/*Ö¸¶¨ÆµµãÐèÒªËÑË÷µÄÐ¡ÇøÊýÄ¿*/
WORD wNumOfResult;
/*ËÑË÷Ð¡ÇøÐèÒªÂú×ãµÄ×îµÍRSCPÃÅÏÞÖµ*/
WORD wMinRscpThreshold;
/*Ö¸¶¨´ýËÑË÷Ð¡ÇøµÄÊýÄ¿0:±íʾָ¶¨ÆµµãäËÑÐ¡Çø;·Ç0±íʾÔÚÖ¸¶¨cell_parameter_idµÄÐ¡Çø
ÁбíÖÐËÑË÷Í¬ÆµÐ¡Çø*/
WORD wNumOfCellId;
/*´ýËÑË÷Ð¡ÇøµÄcell_parameter_id*/
WORD awCellParameterId[Z_TD_P_MAX_SRH_RESULTS_NUM];
/*Ö¸Ê¾Ð¡ÇøSFN-SFNʱ¼ä²îÖµÊÇ·ñ´æÔڵıêÖ¾,ÿ¸öÐ¡ÇøÒ»¸ö,¶ÔÓ¦cell_parameter_idÁбíÖеÄÐ¡Çø
0:²»´æÔÚ
1:´æÔÚ
*/
WORD awTimeDiffBitMap;
/*dch:¶ÔÓ¦SFN-CFN observed time difference
ÆäËü״̬¶ÔÓ¦sfn-sfn observed time difference
*/
WORD awOff[Z_TD_P_MAX_SRH_RESULTS_NUM];
WORD awTm[Z_TD_P_MAX_SRH_RESULTS_NUM];
}T_zTD_P_cell_search_req;
/******************************************************
RRC->PHY
¹¦ÄÜ:
Í£Ö¹ÎïÀí²ãµÄÐ¡ÇøËÑË÷
½á¹¹:T_abort_cell_srh_req
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_abort_cell_srh_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
Í£Ö¹ÎïÀí²ãµÄÐ¡ÇøËÑË÷ÎïÀí²ãÓ¦´ð
½á¹¹:T_abort_cell_srh_cnf
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding0;
}T_zTD_P_abort_cell_srh_cnf;
/******************************************************
PHY->RRC
¹¦ÄÜ:
Éϱ¨Ö¸¶¨ÆµµãÉÏÂú×ã×îµÍRSCPÃÅÏÞÖµµÄÐ¡ÇøµÄ²âÁ¿½á¹û
½á¹¹:T_zP_TD_cell_search_ind
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wSeqNum; /*·µ»Øµ±Ç°µÄcell searchÏûÏ¢ÐòºÅ¡£Êý¾Ý·¶Î§£º0~65535*/
WORD wFrequency; /*ͬ²½Ð¡ÇøËùÔÚÆµµã*/
WORD wNoOfFoundCells; /*ËÑË÷µ½µÄÂú×ã×îµÍRSCPÃÅÏÞµÄÐ¡ÇøÊýÄ¿,0±íʾ¸ÃƵµãδÕÒµ½Ð¡Çø*/
/*
T_cell_params:
wCellparameterId:ÒѾ­ËÑË÷µ½µÄÐ¡ÇøL1±êʶ;0~127
wPccpchRscp:ÒÑËÑË÷Ð¡ÇøµÄpccpchÐŵÀRSCP;0~91
swDeltaRscp:µ±pccpchÐŵÀµÄrscpֵСÓÚ0ʱ,¸ÃÖµ±ØÑ¡.
*/
T_zTD_P_cell_params atCell[Z_TD_P_MAX_SRH_RESULTS_NUM];
}T_zTD_P_cell_search_ind;
/******************************************************
RRC->PHY
¹¦ÄÜ:
¸ÃÏûÏ¢¿ÉÄÜÔÚÈκÎ״̬Ï·¢Éú£¬ÓÃÓÚÈ·ÈÏij¸öÖ¸
¶¨µÄÐ¡ÇøµÄSFN¿ÉÒÔÕý³£½âÂë¡£
½á¹¹:
T_zP_TD_bch_read_req
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wBchPriority; /*0:±íʾBCH¶ÁÈ¡ÓÅÏȼ¶µÍÓÚIDLEģʽѰºô½ÓÊÕ(ÒìÆµÇé¿ö); 1:±íʾBCH¶ÁÈ¡ÓÅÏȼ¶¸ßÓÚIDLEģʽѰºô½ÓÊÕ(ÒìÆµÇé¿ö)*/
WORD wFrequency; /*ÐèÒª½âÂëÐ¡ÇøËùÔÚÆµµãUARFCN*/
WORD wCellParameterId; /*ÐèÒª½âÂëÐ¡ÇøµÄL1±êʶ*/
}T_zTD_P_bch_read_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
ÓÃÓÚ·´À¡CPhy_SfnDecode_Req£¬±íʾ¸ÃÐ¡Çø¿ÉÒÔÕýÈ·¶ÁÈ¡BCH¡£
ÁíÍâÔÚDCHÁ´Â·½¨Á¢£¬Ìí¼Ó¹ý³ÌÖУ¬FW×Ô¶¯¶Ô¸ÃÁ´Â·µÄSFN½øÐнâÂë
£¬²¢·´À¡¸øL1U£¬´Ó¶øÈ·ÈϸÃÐ¡ÇøÊÇ¿ÉÒÔʹÓõġ£
½á¹¹:
T_zP_TD_sfn_decode_ind
Ôݲ»¿¼ÂÇ
******************************************************/
/*
typedef struct
{
WORD wMsgId;
WORD wResult; //0:success ±íʾÒѾ­µÃµ½SFN; 1:failure±íʾSFNδ֪;
}T_zTD_P_sfn_decode_ind;
*/
/******************************************************
PHY->RRC
¹¦ÄÜ:
¸ÃÏûÏ¢¿ÉÄÜÔÚÈκÎ״̬Ï·¢Éú£¬´ò¿ªBCH¶ÁϵͳÐÅÏ¢£¬
°üÀ¨·þÎñÐ¡ÇøºÍÏàÁÚÐ¡Çø£¬ÎÞÏìÓ¦ÏûÏ¢¡£
½á¹¹:
T_zP_TD_bch_open_req
******************************************************/
typedef struct {
WORD wMsgId;
WORD wType; /* ¶ÁÈ¡ÀàÐÍ£¬0£ºÖ¸¶¨¶ÁÈ¡ 1£ºÁ¬Ðø¶ÁϵͳÐÅÏ¢±¨¸øÐ­ÒéÕ»£¬²»Çø·ÖMibºÍSib*/
WORD wFrequency; /*ÐèÒª¶ÁÈ¡BCHµÄÐ¡ÇøËùÔ򵀮µµã*/
WORD wCellParameterId; /*ÐèÒª¶ÁÈ¡BCHµÄÐ¡ÇøL1±êʶ*/
WORD wTimeDiffInd; /*dch:¶ÔÓ¦SFN-CFN observed time difference; ÆäËü״̬¶ÔÓ¦sfn-sfn observed time difference */
WORD wOff;
WORD wTm;
/*µ±wType=0ʱÏÂÃæ3¸öÔªËØÓÐЧ,µ±L1ÒÔgapģʽ½øÐÐÖ¸¶¨¶Áȡʱ£¬Ö»ÒªÓÐЧgap´óÓÚÒ»¸öbch TTI£¬¼´Ê¹gap³¤¶ÈСÓÚÖØ¸´³¤¶È£¬Ò²ÐèҪȥ¶ÁÈ¡£¬Ð­ÒéÕ»ÏÔʾµÄ½øÐÐBCH_REALEASE*/
WORD wBch_occasion; /*Ö¸¶¨¶ÁÈ¡µÄÖÜÆÚµÄÆðʼλÖ㬵¥Î»ÎÞÏßÖ¡£¬Êý¾Ý·¶Î§£º0~ÖØ¸´ÖÜÆÚ-2*/
WORD wRep_period; /*Ö¸¶¨¶ÁÈ¡µÄÖØ¸´ÖÜÆÚ£¬µ¥Î»ÎÞÏßÖ¡£¬Êý¾Ý·¶Î§£º1~4096*/
WORD wRep_len; /*Ö¸¶¨¶ÁÈ¡µÄÖØ¸´³¤¶È£¬µ¥Î»ÎÞÏßÖ¡£¬Êý¾Ý·¶Î§£º2~ÖØ¸´ÖÜÆÚ-2*/
}T_zTD_P_bch_open_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
´ò¿ªBCHºóL1Öð¿éÉϱ¨ÏµÍ³ÐÅϢָʾ£¬Ð­ÒéÕ»ÊÕµ½´Ëָʾºó
È¥¹Ì¶¨Buffer¶ÁϵͳÐÅÏ¢Êý¾Ý
½á¹¹:
˵Ã÷:¸Ã½á¹¹¶ÔÓ¦Êý¾Ý´æ·ÅÔÚDPRAMµÄÊý¾ÝÇøÓòÖУ¬¹Ê°´16bit¶ÔÆë¡£
******************************************************/
typedef struct {
WORD wMsgId;
WORD wSfn; /*½âÂëBCHÊý¾ÝµÄÊ×Ö¡µÄϵͳ֡ºÅ0~4095*/
/*
0:±íʾ´«Êä¿é½âÂëÕýÈ·
1:±íʾCRC½âÂë´íÎó;
2:±íʾµ÷¶È³åÍ»,BCHûÓжÁÈ¡,Êý¾ÝÎÞЧ
*/
WORD wCrcCheck;
WORD wFrequency;
WORD wCellParameterId;
WORD wPadding;
WORD awDataArea[Z_TD_P_MAX_NUM_OF_BCH_DWORDS*2];
}T_zTD_P_Bch_Buffer;
/******************************************************
PHY->RRC
¹¦ÄÜ:
Èç¹ûL1¶ÁBCHʧ°Ü£¬ÓÃP_BCH_READ_REJÏûϢ֪ͨЭÒéÕ»
½á¹¹:
T_zP_TD_bch_open_rej
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wCause; /*0:¶ÁÈ¡BCHÓëÔ­SCCPCH³åÍ»,ÔÊÐíɾ³ýSCCPCHÖØ¶Á; 1:ÒòÐźŽϲî,ÎÞ·¨¶ÁÈ¡BCH; */
WORD wFrequency;
WORD wCellParameterId;
}T_zTD_P_bch_open_rej;
/******************************************************
RRC->PHY
¹¦ÄÜ:
ЭÒéÕ»ÇëÇóL1Í£Ö¹½ÓÊÕϵͳÐÅÏ¢,ÊÍ·ÅBCH
½á¹¹:
T_zP_TD_bch_release_req
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_bch_release_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
L1È·ÈÏЭÒéջֹͣ½ÓÊÕϵͳÐÅÏ¢
½á¹¹:
T_zTD_P_bch_release_cnf
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding0;
}T_zTD_P_bch_release_cnf;
/******************************************************
RRC->PHY
¹¦ÄÜ:
RRCÔÚϵͳÐÅÏ¢¶ÁÈ¡Íê³Éºó£¬ÈÏÎªÐ¡Çø¿É
פÁô£¬·¢ËÍ´ËÏûϢ֪ͨÎïÀí²ã´ËÐ¡ÇøÎª·þ
ÎñÐ¡Çø¡£
½á¹¹:
T_zP_TD_camp_on_a_cell_req
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wPadding;
WORD wFrequency; /*·þÎñÐ¡ÇøËùÔÚÆµµã*/
WORD wCellParameterId; /*·þÎñÐ¡ÇøL1±êʶ*/
}T_zTD_P_camp_on_a_cell_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
µ×²ãÈ·ÈÏפÁôÐ¡Çø¡£
½á¹¹:
T_zTD_P_camp_on_a_cell_cnf
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_camp_on_a_cell_cnf;
/******************************************************
RRC->PHY
¹¦ÄÜ:
ЭÒéջ֪ͨÎïÀí²ãÊÍ·ÅËùÓÐ×ÊÔ´
½á¹¹:
T_zTD_P_Reset_req
******************************************************/
typedef struct{
WORD wMsgId;
WORD wRfStat; /*É䯵³õʼ»¯ºó״̬£¬1¡ª¡ªÉ䯵¿ÉÓã¬0¡ª¡ªÉ䯵²»¿ÉÓÃ*/
}T_zTD_P_Reset_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
ÎïÀí²ã֪ͨЭÒéÕ»ÊÍ·ÅËùÓÐ×ÊÔ´½áÊø
½á¹¹:
T_zTD_P_reset_cnf
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_reset_cnf;
/******************************************************
RRC->PHY
¹¦ÄÜ:
ЭÒéջ֪ͨÎïÀí²ãģʽÀàÐÍ£¬ÊÇGSM mode»òÕßUMTS mode£¬
µ±Ð­ÒéÕ»ÈÏΪTD L1ÐèÒªÓÃgapʱ¼ä¹¤×÷ʱ£¬ÔòÉèÖÃΪGSM mode£»
·ñÔòΪUMTS mode£»
TD L1¸ù¾ÝģʽÀàÐÍ£¬À´ÅжϺóÐø¹¤×÷Ðè²»ÐèÒªµÈ´ýgapʱ¼äÀ´½øÐÐ
½á¹¹:
T_set_irat_mode_Req
******************************************************/
typedef struct{
WORD wMsgId;
WORD wModeTypes; /*0-Gsm mode£¬1-Umts mode*/
}T_zTD_P_set_irat_mode_Req;
/******************************************************
RRC->PHY
¹¦ÄÜ:
ЭÒéÕ»ÃüÁîL1½øÈë˯Ãß״̬,Ö±µ½Ð­ÒéÕ»
ͨ¹ýARM´¦ÀíÆ÷»½ÐÑDSP´¦ÀíÆ÷
½á¹¹:
T_zP_TD_td_sleep_req
´ý¶¨
******************************************************/
/*
typedef struct{
WORD wEnable;
WORD wPadding;
}T_zTD_P_sleep_req;
*/
/**************************************************************************
* ²âÁ¿È«¾ÖÊý¾ÝÀàÐͶ¨ÒåSTART *
**************************************************************************/
typedef struct{
WORD wCellID;
WORD wCellPara;
WORD wChipAccuracy; /*ȡֵΪ0£¬40£¬256£¬2560ÆäÖÐȡֵΪ0ʱ±íʾÎÞÂëÆ¬¾«¶ÈÐÅÏ¢¡£*/
WORD wRefTimeDiff;
WORD wRefPwr; /*PCCPCH²Î¿¼·¢É书ÂÊ£¬È¡Öµ6..43*/
WORD wSnplInd; /*ָʾÊÇ·ñ²ÎÓëSNPL¼ÆË㣬1:²ÎÓë 0:²»²ÎÓë*/
WORD wTsNum;
WORD awTsList[Z_TD_P_MAX_DL_TS];
}T_zTD_P_CellInfo;
/**************************************************************************
RRC<->PHY
¹¦ÄÜ:
RRCºÍPHY²ã¼äµÄͬƵ²âÁ¿ÅäÖýӿÚ
½á¹¹:
ͬƵ²âÁ¿ÅäÖÃÏûÏ¢P_INTRA_FREQ_MEAS_REQ
ͬƵ²âÁ¿½á¹ûÏûÏ¢P_INTRA_FREQ_MEAS_IND
**************************************************************************/
typedef struct{
WORD wMsgId;
WORD wDetectedSetQuantity;
WORD wNumberOfCellMeas;
WORD wPadding;
WORD wRefTimeDiffInd;/*¶¨ÒåwRefTimeDiff ²ÎÊý¸ø³öµÄÆ«²îÊÇSFN-SFN timing difference»òÊÇSFN-CFN timing differenceÒÔ¼°ÏàӦʱ¼ä²îµÄÀàÐÍ¡£
b0£ºtiming difference.0£½SFN-SFN timing difference£¬1£½SFN-CFN timing difference
b1£ºtypeInd.0=TYPE1,1=TYPE2*/
WORD wNotMeasCellNum;/*²»ÐèÒª²âÁ¿µÄÐ¡ÇøÊý*/
T_zTD_P_CellInfo atCellInfo[Z_TD_P_MAX_INTRA_CELL_NUM];
DWORD dwMeasId;
DWORD dwRscpNeed;
DWORD dwIscpNeed;
DWORD dwCellSynInforNeed;
WORD wNotMeasCellPara[Z_TD_P_MAX_INTRA_CELL_NUM]; /*²»ÐèÒª²âÁ¿µÄÐ¡ÇøwCellPara */
}T_zTD_P_CPhy_IntraMeas_Req; /*273B*/
typedef struct{
WORD wCellID;
WORD wCellPara;
WORD wRscpFlag:1;
WORD wSfnFlag:1;
WORD :14;
WORD wRscp;
WORD wTsNum;
WORD wSfn;
WORD wOff;
WORD wTm; /*DCH̬ÏÂTMÖµÎÞЧ*/
WORD awTsList[Z_TD_P_MAX_DL_TS];
WORD awIscp[Z_TD_P_MAX_DL_TS];
}T_zTD_P_CellMeasRlt;
typedef struct{
WORD wMsgId;
WORD wPadding;
WORD wCellNum;
WORD wFailCellNum;
T_zTD_P_CellMeasRlt atMeasRltList[Z_TD_P_MAX_INTRA_CELL_NUM]; /*Êý×éÐ¡ÇøÓëÐ¡ÇøID¶ÔÓ¦*/
DWORD dwMeasId;
DWORD dwFailCellBitMap;
}T_zTD_P_CPhy_IntraMeas_Ind; /*424B*/ /*Èç¹ûÈ¡×î´ó32¸öÐ¡Çø840B*/
/**************************************************************************
RRC<->PHY
¹¦ÄÜ:
RRCºÍÎïÀí²ã¼äµÄÒìÆµ²âÁ¿ÅäÖýӿÚ
½á¹¹:
Ƶ¼ä²âÁ¿ÅäÖÃÏûÏ¢ P_INTER_FREQ_MEAS_REQ
Ƶ¼ä²âÁ¿½á¹ûÏûÏ¢ P_INTER_FREQ_MEAS_IND
äƵµã²âÁ¿³öµÄÐ¡Çø²âÁ¿½á¹ûÉϱ¨ P_INTER_FREQ_BLIND_MEAS_IND
**************************************************************************/
/* ƵµãÐÅÏ¢ */
typedef struct
{
WORD wFreq; /*Ƶµã*/
WORD wStartPos:8 ; /*¸ÃƵµãÐ¡ÇøÔÚÐ¡ÇøÐÅÏ¢±íÖÐµÄÆðʼλÖÃ*/
WORD wCellNum:8; /*¸ÃƵµãÉϵÄÐ¡ÇøÊý*/
WORD wHighPrio; /* ÖÃ1±íʾ¸ÃƵµãÏà¶ÔÓÚ·þÎñƵµãΪ¸ßÓÅÏȼ¶ */
WORD wPadding;
}T_zTD_P_FreqMeasInfo;
typedef struct {
WORD wMsgId;
#ifdef R9_SUPPORT
WORD wBlindRepFlg;/*ÊÇ·ñÊÇäƵµãÉϱ¨·½Ê½ 1±íʾäƵµãÉϱ¨ 0±íʾÒìÆµÉϱ¨·½Ê½*/
DWORD dwTmeasInial; /*³õʼ²âÁ¿Éϱ¨ÖÜÆÚ£¬µ¥Î»MS.ÎïÀí²ãÔÚÍê³ÉËùÓÐÆµµã²âÁ¿ºóÖÜÆÚδ³¬Ê±Ò²¿ÉÒÔÌáǰÉϱ¨²âÁ¿½á¹û¡£
ÖÜÆÚÄÚ²âÁ¿½á¹ûÉϱ¨×î³Ù²»Äܳ¬¹ýdwTmeasInialÉϱ¨ÖÜÆÚ¡£dwTmeasInial³¬Ê±ºóÆô¶¯wTmeas£¬ÎïÀí²ãÖÜÆÚÄÚ²âÁ¿½á¹ûµÄÌáǰÉϱ¨²»Ó°ÏìÖÜÆÚµÄÆô¶¯µã¡£*/
WORD wTmeas;/*Õý³£Éϱ¨ÖÜÆÚ£¬µ¥Î»MS¡£ÎïÀí²ãÖÜÆÚÄÚ²âÁ¿½á¹ûµÄÌáǰÉϱ¨²»Ó°ÏìÖÜÆÚµÄÆô¶¯µã¡£ÖÜÆÚÄÚ²âÁ¿½á¹ûÉϱ¨×î³Ù²»Äܳ¬¹ýwTmeasÉϱ¨ÖÜÆÚ*/
#endif
WORD wCellNum;
WORD wFreqNum;
WORD wRefTimeDiffInd;
T_zTD_P_FreqMeasInfo atFreqInfo[Z_TD_P_MAX_INTER_FREQ_NUM];
T_zTD_P_CellInfo atCellInfo[Z_TD_P_MAX_INTER_CELL_NUM];
DWORD dwMeasId;
DWORD dwRssiNeed;
DWORD dwRscpNeed;
DWORD dwIscpNeed;
DWORD dwCellSynInforNeed;
}T_zTD_P_CPhy_InterMeas_Req;
typedef struct{
WORD wCellID;
WORD wRscpFlag:1;
WORD wSfnFlag:1;
WORD wRssiFlag:1;
WORD :13;
WORD wRscp;
WORD wTsNum;
WORD awTsList[Z_TD_P_MAX_DL_TS];
WORD awIscp[Z_TD_P_MAX_DL_TS];
WORD wSfn;
WORD wOff;
WORD wTm;
WORD wRssi;
}T_zTD_P_UarfcnMeasRlt;
typedef struct {
WORD wMsgId;
WORD wRptFlg; /*0:ÖÜÆÚÉϱ¨ 1:ÌáǰÉϱ¨*/
WORD wFailCellNum;
WORD wCellNum;
DWORD dwMeasId;
DWORD dwFailCellBitMap;
T_zTD_P_UarfcnMeasRlt atCellMeasRltList[Z_TD_P_MAX_INTER_CELL_NUM];
}T_zTD_P_CPhy_InterMeas_Ind; /**456B*//*Èç¹ûÈ¡×î´ó32¸öÐ¡Çø904B*/
typedef struct
{
WORD wCellParam; /* Ð¡ÇøMid ID*/
WORD wRscp;
}T_zTD_P_BlindCellRlt;
typedef struct
{
WORD wArfcn;
WORD wRssi;
WORD wCellNum; /* ¸ÃƵµãÏÂä²âÁ¿µÄÐ¡Çø¸öÊý */
T_zTD_P_BlindCellRlt atBlindCellRlt[Z_TD_P_MAX_BLIND_INTER_CELL];
}T_zTD_P_BlindUarfcnRlt;
typedef struct {
WORD wMsgId;
WORD wFreqNum;
T_zTD_P_BlindUarfcnRlt atFreqRlt[Z_TD_P_MAX_BLIND_INTER_FREQ];
DWORD dwMeasId;
WORD wRptFlg; /*0:ÖÜÆÚÉϱ¨ 1:ÌáǰÉϱ¨*/
WORD wPadding;
}T_zTD_P_InterBlindMeas_Ind;
/**************************************************************************
RRC<->PHY
¹¦ÄÜ: RRCºÍÎïÀí²ã¼äµÄ¼ì²âÐ¡ÇøÉϱ¨½Ó¿Ú
½á¹¹:
ÎïÀí²ã±¨¸æ¼ì²âÐ¡ÇøÏûÏ¢P_DETECT_CELL_INFO_IND_EV
**************************************************************************/
typedef struct
{
WORD wUarfcn; /*¼ì²âÐ¡ÇøµÄƵµã*/
WORD wParaId;/*¼ì²âÐ¡ÇøµãµÄ²ÎÊýID*/
WORD wRscp; /*¼ì²âÐ¡Çø²âÁ¿Öµ*/
WORD wPadding;
}T_zTD_P_DetectCellInfoRlt;
typedef struct
{
WORD wMsgId;
WORD wDetectCellNum; /* Ð¡ÇøÊýÄ¿£¬Ã»ÓÐÇ¿Ð¡ÇøÊ±Éϱ¨¼ì²âÐ¡ÇøÊýÄ¿ÊÇ0 */
T_zTD_P_DetectCellInfoRlt atDetectCellInfo[Z_TD_P_MAX_DETECT_CELL_NUM]; /*ÎïÀí²ãÉϱ¨µ±Ç°×îÇ¿µÄ4Ç¿Ð¡Çø£¬ÓÉÇ¿µ½ÈõÌî³ä*/
}T_zTD_P_DetectCellInfo;
/**************************************************************************¡¢
RRC<->PHY
¹¦ÄÜ:
RRCºÍÎïÀí²ã¼äµÄÖÊÁ¿²âÁ¿ÅäÖýӿÚ
½á¹¹:
ÖÊÁ¿²âÁ¿ÅäÖÃÏûÏ¢P_QUALITY_MEAS_REQ
ÖÊÁ¿²âÁ¿½á¹ûÏûÏ¢P_QUALITY_MEAS_IND
**************************************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
DWORD dwMeasId;
WORD abTfcsId[Z_TD_P_MAX_DL_CCTRCH_NUM];
WORD wCCTrchNum;
}T_zTD_P_QualMeas_Req;
typedef struct {
WORD wTfcsId;
WORD awSir[Z_TD_P_MAX_DL_TS];
}T_zTD_P_CCTrchSirMeasRlt; /*5Word*/
typedef struct {
WORD wMsgId;
WORD wPadding;
DWORD dwMeasId;
T_zTD_P_CCTrchSirMeasRlt atCctrchMeasList[Z_TD_P_MAX_DL_CCTRCH_NUM];
WORD wCctrchNum;
}T_zTD_P_CPhy_QualMeas_Ind;
/**************************************************************************
RRC<->PHY
¹¦ÄÜ:
RRCºÍÎïÀí²ã¼ûµÄÄÚ²¿²âÁ¿ÅäÖýӿÚ
½á¹¹:
UEÄÚ²¿²âÁ¿ÅäÖÃÏûÏ¢P_UE_INTERNAL_MEAS_REQ
UEÄÚ²¿²âÁ¿½á¹ûÏûÏ¢P_UE_INTERNAL_MEAS_IND
**************************************************************************/
typedef struct {
WORD wMsgId;
WORD wPadding;
DWORD dwMeasId;
WORD wRepInterval;
WORD wTxPowerNeed:1;
WORD wTadvNeed:1;
WORD wRssiNeed:1;
WORD :13;
}T_zTD_P_CPhy_UeIntMeas_Req;
typedef struct {
WORD wMsgId;
WORD wTxPowerFlag:1;
WORD wTadvFlag:1;
WORD wRssiFlag:1;
WORD :13;
WORD awTxPower[Z_TD_P_MAX_UL_TS];
WORD wRssi;
WORD wPadding;
WORD wTadv;
WORD wSfn;
DWORD dwMeasId;
}T_zTD_P_CPhy_UeIntMeas_Ind;
/**************************************************************************
RRC<->PHY
¹¦ÄÜ:
RRCÏòPHY·¢ËÍFMOÅäÖÃ
½á¹¹:
FachMeasureOccasionÅäÖÃÏûÏ¢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 mod M_REP*/
}T_zTD_P_CPhy_FMOInfo_Req;
/**************************************************************************
PHY->RRC
¹¦ÄÜ:
PHYÏòRRC·¢Ë͵ķþÎñÐ¡Çø²âÁ¿½á¹ûÉϱ¨
½á¹¹:
²âÁ¿ÊÍ·ÅÏûÏ¢P_SERVCELL_MEAS_IND
**************************************************************************/
typedef struct{
WORD wMsgId;
WORD wCellID;
WORD wCellPara;
WORD wRscpFlag:1;
WORD :15;
WORD wRscp;
WORD wTsNum;
WORD awTsList[Z_TD_P_MAX_DL_TS];
WORD awIscp[Z_TD_P_MAX_DL_TS];
DWORD dwMeasId;
} T_zTD_P_CPhy_SerCellMeas_Ind; /*24B*/
/**************************************************************************
RRC->PHY
¹¦ÄÜ:
RRCÏòPHY·¢Ë͵IJâÁ¿É¾³ýָʾ
½á¹¹:
²âÁ¿ÊÍ·ÅÏûÏ¢P_MEAS_REL_REQ
**************************************************************************/
/*measTypes±àÂ룺ÏàÓ¦bitλÖÃ1±íʾÊÍ·Å´ËÀàÐͲâÁ¿£»·ñÔò²»ÊÍ·Å
b0:ServCellMeas
b1:IntraFreq
b2:InterFreq
b3:InterRAT
b4 :TrafficMeas
b5:Quantity
b6:UEInteral
b7:Position
*/
typedef struct{
WORD wMsgId;
WORD wMeasTypes;
}T_zTD_P_CphyMeasRel_Req;
/**************************************************************************
* ²âÁ¿È«¾ÖÊý¾ÝÀàÐͶ¨ÒåEND *
**************************************************************************/
/* RRC->PHY
½á¹¹:T_zP_TD_dl_setup_modify_req
ÓÃ;:RRCÇëÇóÎïÀí²ã½¨Á¢×¨ÓÃÎïÀíÐŵÀ
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
WORD wPrimary_freq; /*primary frequency*/
WORD wWorking_freq; /*secondary frequency*/
/*SFN-SFN ²îÖµ*/
WORD wOff_flg; /*bOff_flg: 0:ÎÞЧ 1:ÓÐЧ*/
WORD wOff;
WORD wSpecial_burst_schedule_para; /*ÌØÊâÍ»·¢µ÷¶È²ÎÊý*/
WORD wActive_time; /*CFN:0~255*/
WORD wTiming_indication; /*Enumerated(Initialise,Maintain) 0:Initialise,1:Maintain*/
/*
CFN-targetSFN frame offset Integer(0..255)
This IE is optional if the IE "Timing indicator" is set to "Initialise" .Otherwise it is not needed
*/
WORD wCfn_target_sfn_frame_offset;
/*wTpc_step_size_flg
0:wTpc_step_size not exist
1:wTpc_step_size exists
*/
WORD wTpc_step_size_flg;
/*Integer(1,2,3)*/
WORD wTpc_step_size;
/*10.3.6.16 Default DPCH Offset Value :Integer(0..7)*/
WORD wDefault_dpch_offset_value;
/*10.3.6.9:Cell parameters id:Integer(0..127)*/
WORD wCell_parameters_id;
/*N312,N313,N315*/
WORD wN312;
WORD wN313;
WORD wN315;
T_zTD_P_dl_cctrch_list tDl_cctrch_list;
}T_zTD_P_dl_setup_modify_req;
/*
PHY->RRC
½á¹¹:T_zTD_P_Dl_Rl_setup_mod_cnf
ÓÃ;:ÎïÀí²ã֪ͨRRCÅäÖü¤»îʱ¼äµ½,ÎïÀí²ãÒÑ
¾­ÆôÓÃеÄÅäÖÃ,´ËʱRRCÆô¶¯T312¶¨Ê±Æ÷
*/
typedef struct{
WORD wMsgId;
WORD wRlt; /*0:¼¤»î³É¹¦£¬1:¼¤»îʧ°Ü*/
}T_zTD_P_dl_rl_setup_mod_cnf;
/*
RRC->PHY
ÎïÀí²ã֪ͨRRCÅäÖü¤»îʱ¼äµ½,ÎïÀí²ãÒÑ
¾­ÆôÓÃеÄÅäÖÃ,´ËʱRRCÆô¶¯T312¶¨Ê±Æ÷
*/
typedef struct{
WORD wMsgId;
WORD wActive_time; /*CFN:0~255£¬256±íʾÁ¢¼´¼¤»î*/
}T_zTD_P_dl_dpch_rel_req;
/*
PHY->RRC
µ×²ãÈ·ÈÏDPCHÐŵÀÊÍ·ÅÍê±Ï
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_dpch_rel_cnf;
/*
PHY->RRC
½á¹¹:T_zP_TD_in_sync_ind
ÓÃ;:ÎïÀí²ãÔÚ½¨Á¢×¨ÓÃÎïÀíÐŵÀʱ,֪ͨRRCͬ²½³É¹¦
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_in_sync_ind;
/*
PHY->RRC
½á¹¹:T_zP_TD_out_sync_ind
ÓÃ;:ÎïÀí²ã֪ͨRRCʧ²½
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_out_sync_ind;
/*
RRC->PHY
½á¹¹:T_zP_TD_ul_dpch_setup_modify_req
ÓÃ;:RRC½¨Á¢ÉÏÐÐרÓÃÎïÀíÐŵÀ
*/
typedef struct{
WORD wMsgId;
WORD wTxAdv; /*dchÉÏÐÐÊý¾Ý·¢Ë͵ÄÌáǰÁ¿£¬ÒÔ֡Ϊµ¥Î»*/
WORD wActive_time; /*0~255; 256:ÎÞЧ*/
WORD wPrimary_freq; /*ƵµãÐÅÏ¢*/
WORD wWorking_freq;
WORD wCell_parameters_id;
WORD wDynamic_sf; /*¶¯Ì¬À©ÆµÒò×Ó*/
/*ÌØÊâÍ»·¢Éú³ÉʱÆÚ*/
WORD wSpec_burst_generation_period;/*(ȡֵ0,2,4,8,16,32,64,128,256,µ¥Î»frame;0±íʾ²»Æô¶¯UL DPCH DTX,ÆäÓàÖµ´ú±íÆô¶¯UL DPCH DTX)*/
/*maximum allowed ul tx power
Integer(-50..33)
bMax_allowed_ul_tx_power = (x -(-50))
*/
WORD wMax_allowed_ul_tx_power;
/*10.3.6.91 Uplink dpch power control info*/
T_zTD_P_ul_dpch_power_ctrl tUl_dpch_power_ctrl_info;
/*10.3.6.96 Uplink Timing Advance Control*/
T_zTD_P_ul_timing_advance tUplink_timing_advance_control;
/*ul tfcs list*/
T_zTD_P_ul_cctrch_list tUl_cctrch_list;
}T_zTD_P_UlDpch_setup_mod_req;
/* RRC->PHY
ÓÃ; RRCÓÃÓÚÊÍ·ÅÉÏÐÐרÓÃÎïÀíÐŵÀ
*/
typedef struct{
WORD wMsgId;
WORD wActive_time; /*CFN:0~255£¬256±íʾÁ¢¼´¼¤»î*/
}T_zTD_P_ul_dpch_rel_req;
/* PHY->RRC
½á¹¹:T_zP_TD_ul_establish_ind
ÓÃ;:ÎïÀí²ã·´À¡ÉÏÐÐÁ´Â·½¨Á¢³É¹¦
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_ul_establish_ind;
/* RRC->PHY
½á¹¹:T_zP_TD_dl_trch_reconfig_req
ÓÃ;:RRCÅäÖÃÏÂÐд«Êä¸ñʽºÍ´«Êä¸ñʽ×éºÏÐÅÏ¢
*/
typedef struct{
WORD wTrchId;
/*Enumerated(No coding,Convolutional,Turbo)
0:No coding
1:Convolutional
2:Turbo
*/
WORD wTrch_type;
WORD wCoding_type_of_channel;
/*Integer(5,10,20,40,80,dynamic)
0:dynamic
*/
WORD wTransmission_time_interval;
/* Integer(0,8,12,16,24) */
WORD wCrc_length;
/*Integer(1..hiRM) hiRM =256*/
WORD wRm_attribute;
WORD wNo_of_dynamic_tfs;
}T_zTD_P_static_tfs;
typedef struct{
/*Unit is bits;rrc should compute the TB size by the rlc size*/
WORD wTransport_block_size;
WORD wNumber_of_transport_blocks;
WORD wTfi;
}T_zTD_P_dynamic_tfs;
typedef struct{
WORD wCtfcH; /*CTFC¸ß16bit*/
WORD wCtfcL; /*CTFCµÍ16bit*/
WORD wTfci;
}T_zTD_P_dl_ctfc_tfc;
typedef struct{
WORD wMsgId;
WORD wCctrchType;/* 0:CctrchDch
1:CctrchFach
2:CctrchPch
3:CctrchCbs
other value:reserved */
WORD wActive_time; /*0~255; 256:ÎÞЧ*/
WORD wNumTrCH;
WORD wNoOfTfcs;
/* ´ÓÓÒµ½×óBITλ¶ÔÓ¦µÄ´«ÊäÐŵÀ˳ÐòÓëatStaticTFSÏàͬ£»bitÖµ0±íʾ²»ÐèÒª½âÎö£¬1±íʾÐèÒª½âÎö */
WORD wEnable_decode_bitmap;
/* ¸ÃÊý×éÔÚwCctrchType==0ʱÓÐЧ£¬Êý×éÔªËØ¶ÔÓ¦µÄ´«ÊäÐŵÀ˳ÐòÓëatStaticTFSÏàͬ£»
Target_BLERΪ¿ÉÑ¡²ÎÊý£¬ÖµµÄ·¶Î§Îª0ÖÁ63£¬0xffff±íʾ²ÎÊý²»´æÔÚ£»ÎïÀí²ãÊÕµ½ºóÒª*£¨-0.1£©µÃµ½Êµ¼ÊÖµ */
WORD awTarget_BLER[Z_TD_P_MAX_DL_TRCH_NUM];
T_zTD_P_static_tfs atStaticTFS[Z_TD_P_MAX_DL_TRCH_NUM];
T_zTD_P_dynamic_tfs atDynamicTFS[Z_TD_P_MAX_DL_TF_NUM];
T_zTD_P_dl_ctfc_tfc atCtfc[Z_TD_P_MAX_DL_TFCS_NUM];
}T_zTD_P_dl_trch_recfg_req;
typedef struct{
DWORD dwCtfc;
/*Ŀǰ֧³ÖµÄ×î´óTFC¸öÊýΪ128¸ö*/
WORD wTfci;
/*
0:ÏÔʾ֪ͨ,ÏÂÃæµÄwBeta_d¸ø³ö
1:²Î¿¼·½Ê½,ÏÂÃæµÄwReference_tfc_id¸ø³ö
×¢ÊÍ£º
ÅäÖô«ÊäÐŵÀµÄTFSÐÅÏ¢,ÓÃÓÚ¼ÆË㵱ij¸öTFCµÄPower
Offset InformationÖеÄBetaDΪ¼ÆË㷽ʽʱ(²Î¿¼ÆäËüTFC)ÎïÀí²ãʹÓá£
*/
WORD wBeta_d_tye:1;
WORD wBeta_d:5; /*0~15*/
WORD wReference_tfc_id:2; /*tfci£¬0~3*/
WORD :8;
}T_zTD_P_ul_ctfc_tfc;
/* RRC->PHY
ÓÃ;:RRCÅäÖÃÉÏÐд«Êä¸ñʽºÍ´«Êä¸ñʽ×éºÏÐÅÏ¢
½á¹¹:T_zTD_P_UlDpch_tch_recfg_req
*/
typedef struct{
WORD wMsgId;
WORD wActive_time; /*0~255; 256:ÎÞЧ*/
WORD wNumTrCH;
WORD wTfcsNum;
T_zTD_P_static_tfs atStaticTFS[Z_TD_P_MAX_UL_TRCH_NUM];
T_zTD_P_dynamic_tfs atDynamicTFS[Z_TD_P_MAX_UL_TF_NUM];
T_zTD_P_ul_ctfc_tfc atCtfc[Z_TD_P_MAX_UL_TFCS_NUM];
}T_zTD_P_UlDpch_tch_recfg_req;
/*
RRC->PHY
ÓÃ;:RRC ÓÃÓÚÅäÖø¨¹«¹²ÎïÀíÐŵÀ
½á¹¹:T_zP_TD_add_mod_sccpch_req
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
WORD wOffset;
WORD wChannelisation_Code_num;
/*10.3.6.10 Common timeslot info*/
T_zTD_P_common_ts_info tCommon_timeslot_info;
/*10.3.6.37 Individual timeslot info*/
T_zTD_P_individual_ts_info tIndividual_timeslot_info;
T_zTD_P_CHANNELISATION_CODE atChannelisation_Code[Z_TD_P_CH_CODE_NUM];
}T_zTD_P_add_mod_sccpch_req;
/*
RRC->PHY
ÓÃ;:RRC ÓÃÓÚÊͷŹ«¹²ÐŵÀÅäÖÃ
½á¹¹:T_zTD_P_rel_sccpch_req
*/
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zTD_P_rel_sccpch_req;
/*
RRC->PHY
ÓÃ;:µ×²ãÈ·ÈÏSCCPCHÐŵÀÊÍ·ÅÍê±Ï
½á¹¹:T_zTD_P_rel_sccpch_cnf
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_rel_sccpch_cnf;
typedef struct{
/*pich info*/
/*Timeslot number Integer(0..6)*/
WORD wTimeslot_number;
/*25.331 10.3.6.41 Midamble shift and burst type*/
T_zTD_P_mid_shift_bur_type tMidamble_shift_burst_type;
/*wChannelisation_code_number:ÐŵÀ»¯ÂëµÄÊýÄ¿*/
T_zTD_P_CHANNELISATION_CODE atChannelisation_code[2];
WORD wChannelisation_code_number;
/*
Enumerated((4/2),(8/2),(8/4),(16/2),(16/4),(32/2),(32/4),(64/2),(64/4))
(4/2):wRepetition_period_length =0,
(8/2):wRepetition_period_length =1,
...and so on...
*/
WORD wRepetition_period_length;
/*Ö¡Æ«ÒÆ*/
WORD wOffset;
/*Indicates the length of one paging indicator in bits. Default value is 4.
Integer(4,8,16)
*/
WORD wPaging_indicator_length;
/*²»Á¬Ðø½ÓÊÕÖÜÆÚ*/
WORD wDrx_cycle_length;
/*Ѱºôʱ¿Ì*/
WORD wPaging_occasion;
/*ѰÕÒָʾÒò×Ó*/
WORD wPi;
/*ѰºôÏûÏ¢½ÓÊÕʱ¿Ì*/
WORD wPaging_msg_rcv_occasion;
}T_zTD_P_pich_info;
/*Imsi*/
typedef struct{
WORD wNum;
WORD awList[21];
}T_zTD_P_ImsiGsm;
/*URnti*/
typedef struct{
WORD wSrncId;
WORD wPadding;
DWORD dwSRnti;
}T_zTD_P_URnti;
/*ue id*/
typedef struct {
WORD wUeIdValidBitmap;/*bit0..bit3ÓÐЧ£¬ÒÀ´Î·Ö±ðָʾÐÅÔªTmsiGsm¡¢PTmsiGsm¡¢ImsiGsm¡¢URntiÊÇ·ñ´æÔÚ¡£bitλΪ1±íʾ¶ÔÓ¦ÐÅÔª´æÔÚ£¬·ñÔò²»´æÔÚ*/
WORD awTmsiGsm[4];
WORD awPTmsiGsm[4];
WORD wPadding;
T_zTD_P_ImsiGsm tImsiGsm;
T_zTD_P_URnti tURnti;
}T_zTD_P_UeId;
/* RRC->PHY
½á¹¹:T_zP_TD_paging_req
ÓÃ;:RRC ÓÃÓÚÅäÖÃѰºôÐŵÀ
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
T_zTD_P_add_mod_sccpch_req tAdd_modify_sccpch_req;
T_zTD_P_pich_info tPichInfo;
T_zTD_P_UeId tUeIdInfo;
}T_zTD_P_paging_req;
/*
RRC->PHY
½á¹¹:T_stop_paging_req
ÓÃ;:RRC ÓÃÓÚֹͣѰºôµÄ½ÓÊÕ
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_stop_paging_req;
/*
PHY->RRC
½á¹¹:T_zTD_P_stop_paging_cnf
ÓÃ;:µ×²ãÈ·ÈÏÊÍ·ÅѰºôÐŵÀÍê±Ï
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_stop_paging_cnf;
/* RRC->PHY
½á¹¹:T_zTD_P_add_modify_cbs_req
ÓÃ;:RRC ÓÃÓÚÅäÖóÐÔØCBSµÄSCCPCHÐŵÀ
Ô­Óï:Z_P_ADD_MODIFY_CBS_REQ_Ev
*/
typedef struct{
WORD wPrd_of_ctch_allo; /* N,1~256;other invalid */
WORD wCbs_frame_off; /* K,0~255;other invalid */
}T_zTD_P_cbs_drx_lev1;
typedef struct{
WORD wNum;
WORD awCtch_bs_list[255]; /* Òª½ÓÊÕµÄBSËùÔÚSFN */
}T_zTD_P_cbs_drx_lev2;
typedef struct{
WORD wMsgId;
WORD wSame_as_pch; /* 0:not same; 1:same */
/* if same as pch, means pch and fach mux on the same sccpch */
WORD wNew_decode_bitmap; /*only valid when wSame_as_pch = 1*/
WORD wDrx_type; /*0:°´Level1 DRX½ÓÊÕ; 1:°´Level2 DRX½ÓÊÕ*/
union{
T_zTD_P_cbs_drx_lev1 tLev1;
T_zTD_P_cbs_drx_lev2 tLev2;
}tDrx;
T_zTD_P_add_mod_sccpch_req tAdd_modify_sccpch_req; /*ÎÞÂÛwSame_as_pch È¡ºÎÖµ¶¼ÓÐЧ*/
T_zTD_P_dl_trch_recfg_req tDl_trch_reconfig_req; /*ÎÞÂÛwSame_as_pch È¡ºÎÖµ¶¼ÓÐЧ*/
}T_zTD_P_add_modify_cbs_req;
/*
RRC->PHY
½á¹¹:T_zTD_P_stop_cbs_req
ÓÃ;:RRC ÓÃÓÚÍ£Ö¹CBSµÄ½ÓÊÕ£¬Èç¹ûfachÓëpch²»¹²ÓÃÒ»Ìõsccpch£¬°üÀ¨É¾³ýÎïÀí×ÊÔ´
Ô­Óï:Z_P_STOP_CBS_REQ_Ev
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_stop_cbs_req;
/*
RRC->PHY
½á¹¹:T_zTD_P_stop_cbs_cnf
ÓÃ;:µ×²ãÈ·ÈÏÊÍ·ÅCBSÐŵÀÍê±Ï
Ô­Óï:Z_P_STOP_CBS_CNF_Ev
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_stop_cbs_cnf;
#ifdef R9_SUPPORT
/*
RRC->PHY
½á¹¹:T_hsdpa_config_req
ÓÃ;:ÓÃÓÚÅäÖÃÎïÀí²ãhsdpa
*/
typedef struct{
WORD wCarrier_Freq;
WORD wHS_scch_num;
WORD wPadding;
T_zTD_P_mc_hs_scch atMc_hs_scch_configuration[Z_TD_P_MAX_HS_SCCH];
T_zTD_P_hs_dpsch_midamble tHs_pdsch_midamble_configuration;
T_zTD_P_hs_harq_info tHs_harq_info;
}T_zTD_P_hsdpa_info_list;
#endif
typedef struct{
WORD wMsgId;
WORD wActive_time; /*0~255; 256:Á¢¼´ÆðЧ*/
WORD wPrimary_freq; /*primary frequency*/
WORD wWorking_freq; /*secondary frequency*/
WORD wCell_parameters_id; /*Integer(0..127)*/
WORD wH_rnti;
WORD wPower_ctrl_gap; /*HS-SICHµÄ´«Êä¼ä¸ôÃÅÏÞ£¬×ÓÖ¡¸öÊý£¬0~255*/
WORD wPl_compensation_switch; /*1:HS-SICHʵ¼Ê´«Êä¼ä¸ôСÓÚÃÅÏÞʱÐè×÷·Ëð²¹³¥ 0:²»×÷·Ëð²¹³¥*/
#ifdef R9_SUPPORT
WORD wTs0Ind;/*1£º±íÊ¾Íø²àÔÊÐí½«ÏÂÐÐHSPDSCHÓÃÓÚTs0£¬0£º±íʾ²»ÔÊÐí*/
WORD wSync_para_fg;/*±êʶµ±Ç°ÊÇ·ñ×ö¹²ÏíÐŵÀµÄͬ²½*/
WORD wHsscch_drx_fg; /*±êʶµ±Ç°HSSCCHÊÇ·ñÖ§³ÖDRX½ÓÊÕ£»*/
WORD wHsdsch_sps_fg;/*±êʶµ±Ç°HSSCCHÊÇ·ñÖ§³ÖSPS²Ù×÷*/
WORD wDefault_dpch_offset_value;/*10.3.6.16 Default DPCH Offset Value :Integer(0..7),½öµ±wSync_para_fg==1ʱÓÐЧ*/
WORD wMacHdTyp;/*HSDSCH¶ÔÓ¦Mac-d flowµÄMACÍ·ÀàÐÍ£»0£º±íʾMac-hs£¬1£º±íʾMAc-ehs*/
T_zTD_P_hsscch_ctrl_ch_drx tHsscch_drx_info;
T_zTD_P_hsdsch_sps_info tHsdsch_sps_info;
T_zTD_P_share_ch_sync_para tSync_para;
#endif
#ifdef R9_SUPPORT
WORD wMcNum;
WORD wHsdpa_info_list_num;
T_zTD_P_hsdpa_info_list atHsdpa_info_list[Z_TD_P_MAX_CARRIER];
#else
WORD wHS_scch_num;
T_zTD_P_hs_scch atHs_scch_configuration[Z_TD_P_MAX_HS_SCCH];
T_zTD_P_hs_dpsch_midamble tHs_pdsch_midamble_cfg;
T_zTD_P_hs_harq_info tHs_harq_info;
#endif
}T_zTD_P_hsdpa_config_req;
typedef struct{
WORD wMsgId;
WORD wActTime;
}T_zTD_P_hsdpa_rel_req;
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_hsdpa_rel_cnf;
/*
RRC->PHY
½á¹¹:T_hsupa_config_req
ÓÃ;:ÓÃÓÚÅäÖÃÎïÀí²ãhsupa
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
WORD wAct_time; /*CFN:0~255*/
WORD wPrimary_freq; /*primary frequency*/
WORD wWorking_freq; /*secondary frequency*/
WORD wCell_parameters_id; /*Integer(0..127)*/
WORD wE_rnti; /*E-RNTI*/
WORD wSch_tr_flg; /*0:µ÷¶ÈÎÞЧ 1:µ÷¶ÈÓÐЧ*/
WORD wNon_sch_tr_flg; /*0:·Çµ÷¶ÈÎÞЧ 1:·Çµ÷¶ÈÓÐЧ*/
WORD wReset_flg; /*0:not reset 1:reset*/
WORD wHarq_info; /*0:¹Ì¶¨Ê¹ÓÃRV0 1:RV¿É±ä*/
WORD wN_ehich; /*E-PUCHºÍE-HICHÏà¸ôµÄʱ϶Êý,4~15*/
WORD wMax_allowed_ul_tx_power;/*Integer(-50..33) bMax_allowed_ul_tx_power = (x -(-50)) */
WORD wPrimary_ccpch_tx_power; /* Integer(6..43)dBm */
#ifndef R9_SUPPORT
WORD wUppch_chip_shift_flg;
WORD wUppch_chip_shift;
#else
WORD wEagch_drx_fg; /*1-Ö§³ÖEAGCHµÄDrx½ÓÊÕ£»0-²»Ö§³ÖEAGCHµÄDRX½ÓÊÕ*/
WORD wEdch_sps_fg; /*1-Ö§³ÖEDCHµÄSPS²Ù×÷£»0-²»Ö§³ÖEDCHµÄSPS²Ù×÷*/
T_zTD_P_eagch_ctrl_ch_drx tEagch_drx_info;
T_zTD_P_edch_sps_info tEdch_sps_info;
T_zTD_P_ul_timing_advance tUplink_timing_advance_control;
#endif
T_zTD_P_epuch_pwr_info tEpuch_pwr_info; /*E-PUCH¹¦¿ØÐÅÏ¢£¬Í¬Ê±ÊÊÓÃÓÚµ÷¶ÈºÍ·Çµ÷¶È*/
T_zTD_P_hs_sch_tr tHs_sch_tr_info; /*½öµ±wSch_tr_flg=1ʱÓÐЧ*/
T_zTD_P_hs_non_sch_tr tHs_non_sch_tr_info; /*½öµ±wNon_sch_tr_flg=1ʱÓÐЧ*/
}T_zTD_P_hsupa_config_req;
/*
RRC->PHY
½á¹¹:T_zTD_P_hsupa_rel_req
ÓÃ;:ÓÃÓÚɾ³ýÎïÀí²ãhsupa
*/
typedef struct{
WORD wMsgId;
WORD wActive_time; /*0~255, 256±íʾÁ¢¼´É¾³ý*/
}T_zTD_P_hsupa_rel_req;
/*
PHY->RRC
½á¹¹:T_zTD_P_hsupa_rel_cnf
ÓÃ;:µ×²ãÈ·ÈÏÊÍ·ÅHSUPAÐŵÀÍê±Ï
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_hsupa_rel_cnf;
/*ûÓзÖÅäÏÂÐÐDPCHʱ£¬ÓôËÔ­Óï*/
typedef struct{
WORD wMsgId;
WORD wActive_time;
WORD wPlcch_num;
WORD wPadding;
T_zTD_P_plcch_info atPlcch_info[Z_TD_P_MAX_UL_TS*2];
}T_zTD_P_add_modify_plcch;
#ifdef R9_SUPPORT
/******************************************************
RRC£¨L1T£©->PHY
¹¦ÄÜ:
ÅäÖÃL1 FACHºÍIDLE̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ: P _HSPA_PLUS_FACH_REQ_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wFrequency_info;
T_zTD_P_fach_dpa_info tFach_dpa_info;
T_zTD_P_fach_upa_info tFach_upa_info;
} T_zTD_P_hspa_plus_fach_req;
/******************************************************
RRC£¨L1T£©->PHY
¹¦ÄÜ:
ÅäÖÃL1 PCH̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ: P _HSPA_PLUS_PCH_REQ_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wFrequency_info;
T_zTD_P_pch_dpa_info tPch_dpa_info;
T_zTD_P_pich_info tPich_info;
} T_zTD_P_hspa_plus_pch_req;
/******************************************************
RRC£¨L1T£©->PHY
¹¦ÄÜ:
ɾ³ýL1 FACHºÍIDLE̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ: P _HSPA_PLUS_FACH_REL_REQ_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wActive_time; /*0~255; 256:Á¢¼´ÆðЧ*/
} T_zTD_P_hspa_plus_fach_rel_req;
/******************************************************
RRC£¨L1T£©->PHY
¹¦ÄÜ:
ɾ³ýL1 PCH̬ϵÄÏà¹ØÔöÇ¿ÅäÖÃ: P _HSPA_PLUS_PCH_REL_REQ_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zTD_P_hspa_plus_pch_rel_req;
/******************************************************
PHY->L1T
¹¦ÄÜ:µ×²ãÈ·ÈÏɾ³ýÔöÇ¿FACHÐŵÀÍê±Ï
: P _HSPA_PLUS_FACH_REL_CNF_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zTD_P_hspa_plus_fach_rel_cnf;
/******************************************************
PHY->L1T
¹¦ÄÜ::µ×²ãÈ·ÈÏɾ³ýÔöÇ¿PCHÐŵÀÍê±Ï
P _HSPA_PLUS_PCH_REL_CNF_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
} T_zTD_P_hspa_plus_pch_rel_cnf;
/******************************************************
RRC£¨L1T£©->PHY
¹¦ÄÜ:
ÔÚÔöÇ¿FACH̬Ï£¬¸ÃÏûÏ¢·¢Ë͸øÎïÀí²ãÓÃÓÚ¸üÐÂרÓõÄHRNTI»òERNTI:P_EFACH_UPDATE_RNTI_REQ_EV
******************************************************/
typedef struct{
WORD wMsgId;
WORD wActive_time;/*0~255; 256:Á¢¼´ÆðЧ*/
WORD wUpdate_type;/*1£ºÖ»¸üÐÂH-RNTI£»2£ºÖ»¸üÐÂE-RNTI£»3£º¸üÐÂH-RNTIºÍE-RNTI;*/
WORD wH_rnti;/*רÓÃHRNTI,µ±wUpdate_typeΪ1»ò3ʱÓÐЧ*/
WORD wE_rnti; /*רÓÃERNTI,µ±wUpdate_typeΪ2»ò3ʱÓÐЧ*/
WORD wPadding;
}T_zTD_P_efach_update_rnti_req;
#endif
/*
½á¹¹¶¨Òå˵Ã÷,´Ë½á¹¹²ÎÊýÏÈÅäÖøømac,Ïà¹Ø²ÎÊýͨ¹ýT_zCUMac_Rach_Para_Req½Ó¿ÚÅäÖøømac;
macͨ¹ýT_P_RACH_PROCEDURE_REQ½Ó¿Ú½«Ïà¹Ø²ÎÊý·¢¸øÎïÀí²ã
*/
typedef struct{
WORD wMsgId;
/*>PRACH info*/
/*´ò¿×ÏÞÖÆ,0~100*/
WORD wPuncturing_limit;
/*10.3.6.78a>>SNC_UL info*/
WORD wPadding;
/*
Integer(-120..-58) by step of 1
wPrx_up_pch_des = x-(-120)
*/
WORD wPrx_up_pch_des;
/*Integer(0,1,2,3)*/
WORD wPower_ramp_step;
/*Integer(1,2,4,8): Maxium numbers of SYNC_UL Transmissions in a power
ramping sequence
*/
WORD wMax_sync_ul_transmissions;
/*>>PRACH-FPACH*/
WORD wPrach_fpach_num;
T_zTD_P_prach_fpach_info tPrach_fpach_info[Z_TD_P_MAX_PRACH_FPACH];
/*RACH TFS*/
/*Integer(10,20,40,80)*/
WORD wTti;
/*
Enumerated(No coding,Convolutional,Turbo)
0:No coding,1:Convolutional,2:Turbo
*/
WORD wChannel_coding_type;
/*
Integer(1..hiRM)
*/
WORD wRate_matching_attribute;
/*Integer(0,8,12,16,24)*/
WORD wCrc_size;
/*10.3.6.59 Primary ccpch tx power
Integer(6..43)dBm
*/
WORD bPrimary_ccpch_tx_power;
/*maximum allowed ul tx power
Integer(-50..33)
bMax_allowed_ul_tx_power = (x -(-50))
*/
WORD wMax_allowed_ul_tx_power;
WORD wUppch_chip_shift;
}T_zTD_P_add_prach_req;
/*==============================================================================
Ô­ÓZ_P_RACH_PROCEDURE_REQ_Ev( UMAC->PHY ), Z_P_ERUCCH_PROCEDURE_REQ_Ev( UMAC->PHY )
˵Ã÷:
==============================================================================*/
typedef struct {
WORD wMsg_id;
/*Bit string(8), the value 1 of a bit indicates the SYNC_UL code index is available*/
WORD wAvailable_sync_ul_codes_indices;
/*Subchannel_size_type: ȡֵ1,2,4,8
1:size1, indicates that all subchannels are available
2:size2,
4:size4,
8:size8*/
WORD wSubchannel_size_type;
/*corresponding the size2,size4,size8*/
WORD wAvailable_subchannel_size;
/*wLastFlagָʾUMACµÄRACH½ÓÈë¹ý³ÌÖд˴ÎÊÇ·ñÒÑΪµÚMmax´Î£¬¼´×îºóÒ»´Î¡£
0: ²»ÊÇ×îºóÒ»´Î¡£´ËʱÎïÀí²ãÓ¦¼ÌÐø»º´æµÚÒ»´ÎËùЯ´øµÄRACHÊý¾Ý£»
1: ×îºóÒ»´Î£¬MAC²ãÒѾ­´ïµ½×î´óÖØ´«´ÎÊý¡£´ËʱÎïÀí²ãÐèɾ³ý»º´æµÄRACHÊý¾Ý¡£*/
WORD wLastFlag;
WORD wPadding;
T_zTD_P_add_prach_req tPrachPara;
}T_zTD_P_RACH_PROCEDURE_REQ;
/**************************************************************************
* ÎÞÏß×ÊÔ´ÅäÖÃÏà¹Ø½Ó¿Ú¶¨ÒåEND *
**************************************************************************/
/**************************************************************************
* ˫ģGAPÏà¹Ø½Ó¿Ú *
**************************************************************************/
#ifdef MULTI_IRAT_2963
/*=====================================================
URRCA->TD PHY Z_P_GSM_INACT_TIME_REQ_Ev
¹¦ÄÜ: 2GÖ÷ģʽʱ£¬GSM֪ͨTDD L1SµÄgapʱ¼äÐÅÏ¢£»
½á¹¹: T_zP_gsm_inactive_time_req
=====================================================*/
typedef struct
{
WORD wMsgId;
WORD wStoreFlg;
DWORD dwGsmInactiveTime;
WORD wNumRemainingGaps;
WORD wSearchPrioMode;
WORD wClusterType;
WORD wIdleFrameOffset;
SHORT wGsmTimingCorrection;
WORD wPadding;
} T_zPS_TD_P_inactive_time_req,T_zTD_P_inactive_time_req;
/*=====================================================
PHY->URRA Z_P_UMTS_TIMER_SNAPSHOT_IND_Ev
¹¦ÄÜ: L1SÉϱ¨µÄ¿ìÕÕʱ¼ä£»
½á¹¹: T_zP_umts_snapshot_ind
=====================================================*/
typedef struct
{
WORD wMsgId;
WORD wSubSfn; /*UMTS Ëø´æµÄsfn×ÓÖ¡ºÅ*/
WORD wChipOffset; /*UMTSËø´æÊ±ÔÚ±¾×ÓÖ¡ÄÚµÄchipÆ«ÒÆ*/
WORD wPaddings;
} T_zTD_P_umts_snapshot_ind;
#endif
/*=====================================================
URRCA/URRC->PHY L1G_UMTS_IDLE_PERIOD_REPMODE_REQ_EV
¹¦ÄÜ: 3GÖ÷ģʽʱ£¬PSÅäÖÃL1SµÄgapģʽ£»
½á¹¹: T_zTD_P_umts_idle_PeriodRep_req
=====================================================*/
typedef struct
{
WORD wMsgId;
WORD wReportingMode; /*0: not reprot gap, 1:report gap*/
DWORD dwGapId; /*ÎÕÊÖÐòÁкÅ*/
} T_zTD_P_umts_idle_PeriodRep_req;
/*=====================================================
PHY->URRCA Z_P_UMTS_INACTIVE_TIME_IND_Ev
¹¦ÄÜ: L1SÉϱ¨µÄgapʱ¼ä£»
½á¹¹: T_zP_umts_inact_time_ind
=====================================================*/
typedef struct
{
WORD wStartChip; /*±¾gapÆðʼµã¾àÀë±¾×ÓÖ¡ÆðʼµãµÄÆ«ÒÆ£¬¼´gapÔÚ±¾×ÓÖ¡ÖеÄλÖ㬵¥Î»£ºCHIP*/
WORD wLengthChip; /*±¾gapµÄ³¤¶È£¬µ¥Î»£ºCHIP*/
} T_zTD_P_gap_info_in_subframe;
typedef struct
{
WORD wMsgId;
WORD wStarSubtSfn; /*ÆðʼµÄsfn×ÓÖ¡ºÅ£¬·¶Î§£º0-8191*/
WORD wNumOfInactiveSubframe; /*³ÖÐøµÄ×ÓÖ¡³¤¶È*/
WORD wNumOfGapInSubFrame; /*ÔÚÒ»¸ö×ÓÖ¡ÖÐgapµÄ¸öÊý*/
T_zTD_P_gap_info_in_subframe atGapInfoInSubFrame[Z_TD_P_MAX_GAP_NUM]; /*ÔÚÒ»¸ö×ÓÖ¡Öи÷gapµÄλÖÃ*/
DWORD dwGapId; /*ÎÕÊÖÐòÁкÅ*/
} T_zTD_P_umts_inact_time_ind;
/******************************************************
RRC->PHY
¹¦ÄÜ:
ЭÒéջ֪ͨÎïÀí²ãÊÍ·Å×ÊÔ´
½á¹¹:
T_zTD_P_Rel_req
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_Rel_req;
/******************************************************
PHY->RRC
¹¦ÄÜ:
ÎïÀí²ã֪ͨЭÒéÕ»ÊÍ·Å×ÊÔ´È·ÈÏ
½á¹¹:
T_zTD_P_Rel_cnf
******************************************************/
typedef struct{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_Rel_cnf;
#ifdef R9_SUPPORT
/**************************************************************************
L1T<->PHY
¹¦ÄÜ:
1.TDD Ö÷ģʽÏÂDCH̬½«Íø²àÅäÖõÄGAPÐÅÏ¢´ø¸øÎïÀí²ã£¬Ò»·½Ãæ½âÎö³öÒìÆµµÄGAP¡£
ÁíÒ»·½Ãæ±Ü¿ªÍø²à¸øÆäËûÖÆÊ½¹¤×÷µÄʱ¼äP_TD_DCH_GAP_CONFIG_REQ_EV (mac)()µ¥Î»£©
½á¹¹: T_zTD_P_MeasGapConfig_Req
**************************************************************************/
typedef struct
{
WORD wPatternId;
WORD wActiveFlg; /*1=bActiveFlg ±íʾ¼¤»î¡£0±íʾȥ»î*/
WORD wPeriod;/*GAPÄ£Ð͵ÄÖØ¸´ÖÜÆÚ£¬µ¥Î»ÊÇÎÞÏÞÖ¡£¨10ms£©*/
WORD wMeasPurpose;/*1=ÒìÆµ £¬2=RAT*/
WORD wOffset;/*GAPÄ£ÐÍÖØ¸´ÖÜÆÚÄÚ£¬GAPÆðʼµã.µ¥Î»ÊÇ£¨10ms£©*/
WORD wLength;/* GAPÄ£ÐͳÖÐøÊ±¼ä,µ¥Î»ÊÇÎÞÏÞÖ¡£¨ms£©*/
WORD wTsBitmap;/* GAPÄ£ÐÍÄÚµÄÿ¸ö×Ó֡ʱ϶ռÓÃÇé¿ö£¬±ÈÌØÎ»ÖÃ1±íʾGAPÕ¼Ó㬴ӵ͵½¸ßµÚ0±ÈÌØ±íʾʱ϶0*/
WORD wPadding;
}T_zTD_P_umts_GapPattern;
typedef struct
{
WORD wMsgId;
WORD wGapPatternNum;
T_zTD_P_umts_GapPattern atGapPatternList[6];
}T_zTD_P_MeasGapConfig_Req;
#endif /* R9_SUPPORT */
/**************************************************************************
L1T<->PHY
¹¦ÄÜ:
2. TDDΪ¸¨Ä£Ê½Ï£¬ÊÕµ½µÄGAPÅäÖÃP_IRAT_GAP_CONFIG_REQ_EV
½á¹¹: T_zTD_P_IratGapConfig_Req
**************************************************************************/
#if (defined (_CHIP_ZX297502))
typedef struct
{
WORD wMsgId;
WORD wIdleOrConnectFlg;/*TDΪ¸¨ÖÆÊ½Ê±Ö÷ÖÆÊ½µÄ״̬£¬È¡ÖµÎª0±íʾ¿ÕÏÐ̬ȡֵΪ1±íʾÁ¬½Ó̬*/
WORD wOff;/*GAPÆðʼµãÆ«ÒÆ.µ¥Î»ÊÇ£¨5ms£©*/
WORD wOffChip;/*GAPÆðʼµã.CHIPÆ«ÒÆ£¨chips£©,ÕæÕýµÄGAPÆðʼµãÊÇwOffset+wOffChip*/
DWORD dwLength;/* GAPÄ£ÐͳÖÐøÊ±¼ä,µ¥Î»ÊÇ£¨chips£©*/
}T_zTD_P_IratGapConfig_Req;
#else
typedef struct
{
WORD wMsgId;
WORD wIdleOrConnectFlg;/*TDΪ¸¨ÖÆÊ½Ê±Ö÷ÖÆÊ½µÄ״̬£¬È¡ÖµÎª0±íʾ¿ÕÏÐ̬ȡֵΪ1±íʾÁ¬½Ó̬*/
WORD wStartSubSfn;/*GAPÆðʼµãÖ¡ºÅ*/
WORD wStartOffChip;/*GAPÆðʼµã.CHIPÆ«ÒÆ£¨chips£©,ÕæÕýµÄGAPÆðʼµãÊÇwStartSubSfn+wStartOffChip*/
DWORD dwLength;/* GAPÄ£ÐͳÖÐøÊ±¼ä,µ¥Î»ÊÇ£¨chips£©*/
}T_zTD_P_IratGapConfig_Req;
#endif
/******************************************************
L1T->PHY
¹¦ÄÜ:
ÇëÇó ÎïÀí²ãֹͣʹÓÃGAP
ÏûÏ¢¼°½á¹¹: zPS_TD_P_ABORT_IRAT_GAP_REQ_Ev
T_zTD_P_ABORT_IRAT_GAP_REQ
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_ABORT_IRAT_GAP_REQ;
/******************************************************
PHY->L1T
¹¦ÄÜ:
ÎïÀí²ãÊÕµ½ÆäËûÖÆÊ½ÊÕ»ØGAPµÄÏûÏ¢ºó£¬²»ÔÚʹÓÃGAPµÄÈ·ÈÏ
ÏûÏ¢¼°½á¹¹: zPS_TD_P_ABORT_IRAT_GAP_CNF_Ev
Z_P_ABORT_IRAT_GAP_CNF
******************************************************/
typedef struct
{
WORD wMsgId;
WORD wPadding;
}T_zTD_P_ABORT_IRAT_GAP_CNF;
/*
RRC->PHY
½á¹¹:T_zTD_P_Ul_phy_ch_ctrl_req
ÓÃ;:ÐÞ¸ÄÉÏÐÐÎïÀíÐŵÀµÄ¿ØÖÆÐÅÏ¢
*/
typedef struct{
WORD wMsgId;
WORD wPadding;
/*ÌØÊâÍ»·¢Éú³ÉʱÆÚ*/
WORD wSpec_burst_generation_period;/*(ȡֵ0,2,4,8,16,32,64,128,256,µ¥Î»frame;0±íʾ²»Æô¶¯UL DPCH DTX,ÆäÓàÖµ´ú±íÆô¶¯UL DPCH DTX)*/
WORD wUl_Sync_Step_Size;/*Integer(1..8)*/
WORD wUl_Sync_Freq;/*Integer(1..8)*/
WORD wPRXhs_sich;/*½öÅäÖÃHSDPAʱÓÐЧ,Integer(-120..-58);wPRXhs_sich = x-(-120);x = wPRXhs_sich - 120;*/
WORD wTpc_step_size;/*½öÅäÖÃHSDPAʱÓÐЧ,Integer(1,2,3)*/
WORD wUl_dpch_power_ctrl_info_flg;/*ÉÏϹ¦¿ØÐÅÏ¢µÄ±ê־λ,1´ú±íÓй¦¿ØÐÅÏ¢,0´ú±íÎÞ¹¦¿ØÐÅÏ¢*/
/*Uplink dpch power control info*/
T_zTD_P_ul_dpch_power_ctrl tUl_dpch_power_ctrl_info;
}T_zTD_P_Ul_phy_ch_ctrl_req;
/*==============================================================================
L1T/L1W->PHY
ʼþ£ºP_TD_ZTPCG_REQ_EV
¹¦ÄÜ:
ÐÞ¸Ä/²éѯTDÎïÀí²ãÅäÖòÎÊý¡£
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wCmd; /* ÃüÁîºÅ£¬¶ÔÓ¦²»Í¬µÄÎïÀí²ã¹¦ÄÜ */
WORD awValFg[Z_ZTPCG_VALFG_NUM]; /* ±íʾadwValÊÇ·ñ´æÔÚ£¬0±íʾ²»´æÔÚ£¬1±íʾ´æÔÚ */
DWORD adwVal[Z_ZTPCG_VALFG_NUM]; /* ²ÎÊýÁÐ±í£¬ÐÞ¸Ä/¶ÁÈ¡µÄÎïÀí²ã²ÎÊý£¬²ÎÊýʵ¼Êº¬ÒåÓÉÎïÀí²ã¸ø³ö */
}T_zTD_P_Ztpcg_Req;
/*==============================================================================
PHY->L1T
ʼþ£ºP_TD_ZTPCG_CNF_EV
¹¦ÄÜ:
ÐÞ¸Ä/²éѯTDÎïÀí²ãÅäÖòÎÊýµÄÏìÓ¦ÏûÏ¢¡£
==============================================================================*/
typedef struct
{
WORD wMsgId;
WORD wCmd; /* ÃüÁîºÅ£¬¶ÔÓ¦²»Í¬µÄÎïÀí²ã¹¦ÄÜ£¬bMode=0/1¶¼ÓÐЧ */
WORD wRslt; /* ±íʾÉèÖýá¹û£¬Z_TRUEÉèÖóɹ¦£¬Z_FALSEÉèÖÃʧ°Ü wCmdΪÉèÖÃÃüÁîʱÓÐЧ */
WORD awValFg[Z_ZTPCG_PARAM_NUM]; /*°´ÕÕϱêºÍdwValÖÐÖµÒ»Ò»¶ÔÓ¦£¬bVal1Fg[0]±íʾdwVal[0]ÊÇ·ñ´æÔÚ,ÒÀ´ÎÀàÍÆ£¬0±íʾ²»´æÔÚ£¬1±íʾ´æÔÚ*/
LONG alVal[Z_ZTPCG_PARAM_NUM]; /*²ÎÊý1/²ÎÊý2¡­£¬ÐÞ¸Ä/¶ÁÈ¡µÄÎïÀí²ã²ÎÊý£¬²ÎÊýʵ¼Êº¬ÒåÓÉÎïÀí²ã¸ø³ö*/
}T_zTD_P_Ztpcg_Cnf;
#endif // / ZPS_TDPS_PHY_INTERFACE_H