WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_ext_if_device.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2023. All rights reserved.
3 * Description: Header file of HAL external public interfaces .
4 * Create: 2022-2-19
5 */
6
7#ifndef __HAL_EXT_IF_DEVICE_H__
8#define __HAL_EXT_IF_DEVICE_H__
9
10/*****************************************************************************
11 1 其他头文件包含
12*****************************************************************************/
14
15#ifdef __cplusplus
16#if __cplusplus
17extern "C" {
18#endif
19#endif
20
21/*****************************************************************************
22 2 宏定义
23*****************************************************************************/
24
25#define HAL_TX_QEUEU_MAX_PPDU_NUM 2 /* DMAC也有一套,建议合并放入SPEC中 */
26
27
28#define HAL_ANT_SWITCH_RSSI_HIGH_CNT 1000 /* 维持10帧都超过阈值则切换 */
29#define HAL_ANT_SWITCH_RSSI_LOW_CNT 10
30
31#define HAL_ANT_SWITCH_RSSI_MGMT_STRONG_TH 10 /* 强信号下管理帧ant0与ant1相差10dB时切换到SISO */
32#define HAL_ANT_SWITCH_RSSI_MGMT_WEAK_TH 3 /* 弱信号下管理帧ant0与ant1相差3dB时切换到SISO */
33
34#define HAL_ANT_SWITCH_RSSI_TBTT_CNT_TH 50 /* 50个tbtt中断触发一次探测 */
35#define HAL_ANT_SWITCH_RSSI_MIMO_TBTT_OPEN_TH 50 /* 50个tbtt中断触发一次探测 */
36#define HAL_ANT_SWITCH_RSSI_MIMO_TBTT_CLOSE_TH 10 /* 50个tbtt中断触发一次探测 */
37#define HAL_ANT_SWITCH_RSSI_HT_DIFF_TH 10 /* HT协议下20M的差值门限,MCS12灵敏度-MCS7灵敏度 */
38#define HAL_ANT_SWITCH_RSSI_VHT_DIFF_TH 12 /* VHT协议下20M的差值门限,双流MCS4灵敏度-单流MCS9灵敏度 */
39#define HAL_ANT_SWITCH_RSSI_HT_MIN_TH (-86) /* HT协议下的最小值门限,MCS11的灵敏度+3db */
40#define HAL_ANT_SWITCH_RSSI_VHT_MIN_TH (-82) /* VHT协议下的最小值门限,双流MCS4的灵敏度+3db */
41
42#define HAL_CCA_OPT_ED_LOW_TH_DSSS_DEF (-76) /* CCA DSSS 检测门限寄存器默认值 */
43#define HAL_CCA_OPT_ED_LOW_TH_DSSS_MIN (-88) /* CCA DSSS 检测门限寄存器最小值 */
44#define HAL_CCA_OPT_ED_LOW_TH_OFDM_DEF (-82) /* CCA OFDM 检测门限寄存器默认值 */
45#define HAL_CCA_OPT_ED_LOW_TH_OFDM_MIN (-88) /* CCA OFDM 检测门限寄存器最小值 */
46
47#define HAL_CCA_OPT_ED_HYST_20TH_DEF (-62) /* CCA 20M 空闲概率检测门限 */
48#define HAL_CCA_OPT_ED_HYST_40TH_DEF (-59) /* CCA 40M 空闲概率检测门限 */
49
50#define HAL_CCA_OPT_ED_HYST_STEP_20TH_DEF (2) /* CCA 20M 空闲概率检测安全门限 */
51#define HAL_CCA_OPT_ED_HYST_STEP_40TH_DEF (2) /* CCA 40M 空闲概率检测安全门限 */
52
53/*****************************************************************************
54 8 UNION定义
55*****************************************************************************/
56
57/* MIMO/SISO状态机状态枚举 */
58typedef enum {
59 HAL_M2S_STATE_IDLE = 0, /* 初始运行状态 */
60 HAL_M2S_STATE_SISO = 1, /* SISO状态,软件和硬件都是单通道 */
61 HAL_M2S_STATE_MIMO = 2, /* MIMO状态,软件和硬件都是双通道 */
62 HAL_M2S_STATE_MISO = 3, /* MISO探测态,软件单通道,硬件双通道 */
63 HAL_M2S_STATE_SIMO = 4, /* SIMO状态,软件双通道,硬件单通道 */
64
65 HAL_M2S_STATE_BUTT /* 最大状态 */
68
69/* MIMO/SISO状态机事件枚举 */
70typedef enum {
71 /* 1.RSSI模块 */
77
78 /* 2.test模块 */
81 HAL_M2S_EVENT_TEST_MIMO_TO_MISO_C0, /* MISO硬件是mimo的,miso要切分c0还是c1,便于切siso时区分出c0还是c1 */
83 HAL_M2S_EVENT_TEST_MISO_TO_MIMO, /* miso此时不区分c0或者c1 */
98
99 /* 3.BT模块 */
104
105 /* 4.hal device抛来的同步事件 */
110 HAL_M2S_EVENT_SCAN_CHANNEL_BACK, // scan切回home channel事件
112
113 /* 6.上层模块 */
116 HAL_M2S_EVENT_COMMAND_MIMO_TO_MISO_C0, /* MISO硬件是mimo的,miso要切分c0还是c1,便于切siso时区分出c0还是c1 */
118 HAL_M2S_EVENT_COMMAND_MISO_TO_MIMO, /* miso此时不区分c0或者c1 */
119 HAL_M2S_EVENT_COMMAND_SISO_TO_MIMO, /* siso此时不区分c0或者c1 */
120 HAL_M2S_EVENT_COMMAND_SISO_TO_MISO_SCAN_BEGIN, /* 专门用于并发扫描未开,mss下的特殊扫描,当前是c0 siso mss */
121 HAL_M2S_EVENT_COMMAND_MISO_TO_SISO_SCAN_END, /* 专门用于并发扫描未开,mss下的特殊扫描,当前是c0 siso mss */
133
134 /* 7.SISO静态启动模块 */
135 HAL_M2S_EVENT_CUSTOM_MIMO_TO_SISO_C0 = 100, /* 当前蓝牙使用主天线,静态启动默认启动到C0上;开关wifi才能恢复 */
136 /* 优先级最高,AP模式下使用,不涉及dbdc,mss和test返回,rssi不涉及,并发扫描返回;蓝牙来的话,切C1siso */
138 HAL_M2S_EVENT_CUSTOM_SISO_C1_TO_SISO_C0, /* 保持custom优先级最高,根据蓝牙业务触发切c0还是c1 siso */
139
140 /* 8.SISO硬件规格静态启动模块, 不允许蓝牙等业务切换 */
141 HAL_M2S_EVENT_SPEC_MIMO_TO_SISO_C0 = 110, /* 硬件规格,从双天线工作到单天线工作 */
142 HAL_M2S_EVENT_SPEC_MIMO_TO_SISO_C1, /* 硬件规格,从双天线工作到单天线工作 */
143 HAL_M2S_EVENT_SPEC_SISO_TO_MIMO, /* 硬件规格,从单天线工作到双天线工作 */
144 HAL_M2S_EVENT_SPEC_MISO_TO_SISO_C0, /* 硬件规格,从双天线工作到单天线工作 */
145 HAL_M2S_EVENT_SPEC_SISO_C1_TO_SISO_C0, /* 2g c1 siso切换到5g c0 siso,异频dbac的处理方式,其他场景去关联要先回mimo */
146
147 /* 初始化 */
149
153
154#ifdef _PRE_WLAN_FEATURE_DAQ
155typedef struct {
156 osal_u32 diag_basic_start_addr;
157 osal_u32 diag_basic_end_addr;
158 osal_u32 diag_sample_addr;
159 osal_u32 diag_mode;
160 osal_u32 diag_num;
161 osal_u32 diag_cycle;
162 osal_u32 diag_read_addr;
163 osal_u32 diag_source;
164 osal_u32 diag_phy_event_en;
165 osal_u32 diag_phy_event_cnt;
166} hal_mac_test_diag_stru;
167
168typedef struct {
169 hal_mac_test_diag_stru diag_param;
170} hal_to_dmac_device_mac_test_stru;
171
172/* 设置用户配置参数 */
173typedef struct {
174 osal_s32 function_index;
175 osal_s32 value;
176 osal_s32 mode;
177} mac_cfg_mct_set_diag_stru;
178enum {
179 HAL_DIAG_TEST_FUNCTION_INDEX0 = 0,
180 HAL_DIAG_TEST_FUNCTION_INDEX1,
181 HAL_DIAG_TEST_FUNCTION_INDEX2,
182 HAL_DIAG_TEST_FUNCTION_INDEX12 = 12, // 0-12 MAC数采
183 HAL_DIAG_TEST_FUNCTION_INDEX20 = 20,
184 HAL_DIAG_TEST_FUNCTION_INDEX50 = 50, // 20-50 ADC数采 待定
185 HAL_DIAG_TEST_FUNCTION_INDEX100 = 100,
186 HAL_DIAG_TEST_FUNCTION_INDEX500 = 500
187};
188enum {
189 HAL_TEST_DIAG_PHY_SAMPLE_MODE_FIX_LEN,
190 HAL_TEST_DIAG_PHY_SAMPLE_MODE_DEBUG_WITHOUT_DELAY,
191 HAL_TEST_DIAG_PHY_SAMPLE_MODE_DEBUG_WITH_DELAY,
192 HAL_TEST_DIAG_PHY_SAMPLE_MODE_DEBUG_FIX_LEN,
193 HAL_TEST_DIAG_PHY_SAMPLE_MODE_BUTT
194};
195enum {
196 HAL_TEST_DIAG_PHY_SAMPLE_WITHOUT_MAC,
197 HAL_TEST_DIAG_PHY_SAMPLE_WITH_MAC_TSF_ONLY,
198 HAL_TEST_DIAG_PHY_SAMPLE_WITH_MAC_INFO_ALL,
199 HAL_TEST_DIAG_PHY_SAMPLE_MAC_BUTT
200};
201enum {
202 HAL_TEST_DIAG_PHY_SAMPLE_CFG_MODE_RECOVERY,
203 HAL_TEST_DIAG_PHY_SAMPLE_CFG_MODE_BEGIN,
204 HAL_TEST_DIAG_PHY_SAMPLE_CFG_MODE_QUERY,
205 HAL_TEST_DIAG_PHY_SAMPLE_CFG_MODE_SAVE,
206 HAL_TEST_DIAG_PHY_SAMPLE_CFG_MODE_BUTT
207};
208typedef struct {
209 osal_u32 cfg_sample_node_sel : 16; // 选择PHY内部节点 参考节点信号说明
210 osal_u32 cfg_sample_length : 16; // 配置数采长度 单位: 4Byte
211 osal_u32 cfg_debug_sample_len : 1; // 配置触发定长数采模式 1: 触发定长 可以不需要
212 osal_u32 cfg_with_sample_delay_en : 1; // 配置触发延时终止
213 osal_u32 cfg_debug_sample_start_mode : 6; // debug模式数采开始条件选择
214 osal_u32 cfg_debug_sample_end_mode : 6; // debug模式数采结束条件选择
215 osal_u32 cfg_debug_sample_delay : 8; // 配置延时样点个数
216 osal_u32 cfg_with_mac_tsf_en : 1; // 配置同时采样mac tsf信息 1: 开启
217 osal_u32 cfg_with_mac_info_en : 1; // 配置同时采样mac信息 1: 开启
218 osal_u32 cfg_sample_mode : 3; // 数采模式 0: 定长 1: 触发即刻停止 2: 触发延时停止 3: 触发定长
219 osal_u32 cfg_op_mode : 2; // 数采操作模式 0:执行关闭 1:执行开启 2:查询执行情况
220 osal_u32 extend_mode : 1; // 拓展模式 支持tsf mac以及延时配置 0: 不支持(liteos) 1: 支持(linux)
221 osal_u32 resv : 2;
222 osal_u32 event_rpt_addr; // phy事件上报地址
223 osal_u32 save_msg_addr; // 保存消息的地址
224} hal_to_phy_test_diag_stru;
225#endif
226
227typedef struct {
228 /* tx dscr tx_count0/1/2/3 */
233 rsv : 4;
235
236#ifdef __cplusplus
237#if __cplusplus
238}
239#endif
240#endif
241
242#endif /* end of hal_ext_if_device.h */
hal_m2s_event_tpye
Definition hal_ext_if_device.h:70
@ HAL_M2S_EVENT_SCAN_PREPARE
Definition hal_ext_if_device.h:109
@ HAL_M2S_EVENT_SCAN_CHANNEL_BACK
Definition hal_ext_if_device.h:110
@ HAL_M2S_EVENT_COMMAND_IDLE_TO_MIMO
Definition hal_ext_if_device.h:130
@ HAL_M2S_EVENT_COMMAND_MISO_C1_TO_MISO_C0
Definition hal_ext_if_device.h:127
@ HAL_M2S_EVENT_ANT_RSSI_MISO_TO_MIMO
Definition hal_ext_if_device.h:76
@ HAL_M2S_EVENT_TEST_MISO_C1_TO_MISO_C0
Definition hal_ext_if_device.h:92
@ HAL_M2S_EVENT_CUSTOM_MIMO_TO_SISO_C0
Definition hal_ext_if_device.h:135
@ HAL_M2S_EVENT_ANT_RSSI_MIMO_TO_MISO_C1
Definition hal_ext_if_device.h:73
@ HAL_M2S_EVENT_ANT_RSSI_MIMO_TO_MISO_C0
Definition hal_ext_if_device.h:72
@ HAL_M2S_EVENT_COMMAND_SISO_TO_MIMO
Definition hal_ext_if_device.h:119
@ HAL_M2S_EVENT_TEST_SISO_TO_MISO_C0
Definition hal_ext_if_device.h:85
@ HAL_M2S_EVENT_TEST_SISO_TO_MISO_C1
Definition hal_ext_if_device.h:86
@ HAL_M2S_EVENT_CUSTOM_SISO_C1_TO_SISO_C0
Definition hal_ext_if_device.h:138
@ HAL_M2S_EVENT_COMMAND_MISO_TO_MIMO
Definition hal_ext_if_device.h:118
@ HAL_M2S_EVENT_TEST_IDLE_TO_SISO_C0
Definition hal_ext_if_device.h:93
@ HAL_M2S_EVENT_COMMAND_IDLE_TO_MISO_C1
Definition hal_ext_if_device.h:132
@ HAL_M2S_EVENT_TEST_SISO_TO_MIMO
Definition hal_ext_if_device.h:84
@ HAL_M2S_EVENT_TEST_SISO_C0_TO_SISO_C1
Definition hal_ext_if_device.h:87
@ HAL_M2S_EVENT_TEST_SISO_C1_TO_SISO_C0
Definition hal_ext_if_device.h:88
@ HAL_M2S_EVENT_COMMAND_IDLE_TO_MISO_C0
Definition hal_ext_if_device.h:131
@ HAL_M2S_EVENT_COMMAND_MIMO_TO_MISO_C1
Definition hal_ext_if_device.h:117
@ HAL_M2S_EVENT_SCAN_BEGIN
Definition hal_ext_if_device.h:108
@ HAL_M2S_EVENT_COMMAND_MIMO_TO_SISO_C0
Definition hal_ext_if_device.h:114
@ HAL_M2S_EVENT_COMMAND_SISO_C1_TO_SISO_C0
Definition hal_ext_if_device.h:123
@ HAL_M2S_EVENT_ANT_RSSI_MISO_C1_TO_MISO_C0
Definition hal_ext_if_device.h:74
@ HAL_M2S_EVENT_ANT_RSSI_MISO_C0_TO_MISO_C1
Definition hal_ext_if_device.h:75
@ HAL_M2S_EVENT_COMMAND_MIMO_TO_MISO_C0
Definition hal_ext_if_device.h:116
@ HAL_M2S_EVENT_TEST_MIMO_TO_SISO_C1
Definition hal_ext_if_device.h:80
@ HAL_M2S_EVENT_BT_MIMO_TO_SISO_C1
Definition hal_ext_if_device.h:100
@ HAL_M2S_EVENT_FSM_INIT
Definition hal_ext_if_device.h:148
@ HAL_M2S_EVENT_BT_SISO_TO_MIMO
Definition hal_ext_if_device.h:101
@ HAL_M2S_EVENT_COMMAND_MISO_C0_TO_MISO_C1
Definition hal_ext_if_device.h:126
@ HAL_M2S_EVENT_COMMAND_SISO_C0_TO_SISO_C1
Definition hal_ext_if_device.h:122
@ HAL_M2S_EVENT_BT_MISO_TO_SISO_C1
Definition hal_ext_if_device.h:103
@ HAL_M2S_EVENT_TEST_MISO_C0_TO_MISO_C1
Definition hal_ext_if_device.h:91
@ HAL_M2S_EVENT_SPEC_MISO_TO_SISO_C0
Definition hal_ext_if_device.h:144
@ HAL_M2S_EVENT_TEST_IDLE_TO_SISO_C1
Definition hal_ext_if_device.h:94
@ HAL_M2S_EVENT_BT_SISO_C0_TO_SISO_C1
Definition hal_ext_if_device.h:102
@ HAL_M2S_EVENT_COMMAND_MISO_TO_SISO_SCAN_END
Definition hal_ext_if_device.h:121
@ HAL_M2S_EVENT_SPEC_SISO_C1_TO_SISO_C0
Definition hal_ext_if_device.h:145
@ HAL_M2S_EVENT_TEST_MISO_TO_MIMO
Definition hal_ext_if_device.h:83
@ HAL_M2S_EVENT_COMMAND_SISO_TO_MISO_SCAN_BEGIN
Definition hal_ext_if_device.h:120
@ HAL_M2S_EVENT_IDLE_BEGIN
Definition hal_ext_if_device.h:106
@ HAL_M2S_EVENT_CUSTOM_SISO_C0_TO_SISO_C1
Definition hal_ext_if_device.h:137
@ HAL_M2S_EVENT_TEST_IDLE_TO_MISO_C1
Definition hal_ext_if_device.h:97
@ HAL_M2S_EVENT_SPEC_SISO_TO_MIMO
Definition hal_ext_if_device.h:143
@ HAL_M2S_EVENT_COMMAND_MISO_TO_SISO_C0
Definition hal_ext_if_device.h:124
@ HAL_M2S_EVENT_COMMAND_MISO_TO_SISO_C1
Definition hal_ext_if_device.h:125
@ HAL_M2S_EVENT_TEST_MISO_TO_SISO_C1
Definition hal_ext_if_device.h:90
@ HAL_M2S_EVENT_TEST_IDLE_TO_MIMO
Definition hal_ext_if_device.h:95
@ HAL_M2S_EVENT_TEST_MISO_TO_SISO_C0
Definition hal_ext_if_device.h:89
@ HAL_M2S_EVENT_COMMAND_MIMO_TO_SISO_C1
Definition hal_ext_if_device.h:115
@ HAL_M2S_EVENT_COMMAND_IDLE_TO_SISO_C0
Definition hal_ext_if_device.h:128
@ HAL_M2S_EVENT_TEST_MIMO_TO_SISO_C0
Definition hal_ext_if_device.h:79
@ HAL_M2S_EVENT_SPEC_MIMO_TO_SISO_C1
Definition hal_ext_if_device.h:142
@ HAL_M2S_EVENT_BUTT
Definition hal_ext_if_device.h:150
@ HAL_M2S_EVENT_COMMAND_IDLE_TO_SISO_C1
Definition hal_ext_if_device.h:129
@ HAL_M2S_EVENT_SCAN_END
Definition hal_ext_if_device.h:111
@ HAL_M2S_EVENT_TEST_MIMO_TO_MISO_C0
Definition hal_ext_if_device.h:81
@ HAL_M2S_EVENT_TEST_IDLE_TO_MISO_C0
Definition hal_ext_if_device.h:96
@ HAL_M2S_EVENT_TEST_MIMO_TO_MISO_C1
Definition hal_ext_if_device.h:82
@ HAL_M2S_EVENT_SPEC_MIMO_TO_SISO_C0
Definition hal_ext_if_device.h:141
@ HAL_M2S_EVENT_WORK_BEGIN
Definition hal_ext_if_device.h:107
osal_u16 hal_m2s_event_tpye_uint16
Definition hal_ext_if_device.h:152
hal_m2s_state
Definition hal_ext_if_device.h:58
@ HAL_M2S_STATE_SIMO
Definition hal_ext_if_device.h:63
@ HAL_M2S_STATE_BUTT
Definition hal_ext_if_device.h:65
@ HAL_M2S_STATE_IDLE
Definition hal_ext_if_device.h:59
@ HAL_M2S_STATE_MIMO
Definition hal_ext_if_device.h:61
@ HAL_M2S_STATE_SISO
Definition hal_ext_if_device.h:60
@ HAL_M2S_STATE_MISO
Definition hal_ext_if_device.h:62
osal_u8 hal_m2s_state_uint8
Definition hal_ext_if_device.h:67
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition hal_ext_if_device.h:227
osal_u16 tx_count0
Definition hal_ext_if_device.h:229
osal_u16 tx_count2
Definition hal_ext_if_device.h:231
osal_u16 tx_count1
Definition hal_ext_if_device.h:230
osal_u16 tx_count3
Definition hal_ext_if_device.h:232
osal_u16 rsv
Definition hal_ext_if_device.h:233