下面是当前开发基于的版本
| 名称 | 说明 |
|---|---|
| SDK | Visual_jl700n 3.0.0(patch_02) |
读者对象
本文档主要适用以下工程师:
嵌入式系统工程师
单片机软件工程师
IOT 固件工程师
BLE 固件工程师
文章目录
1、TWS耳机MAC说明
TWS耳机内部有许多MAC地址,分别都有不同的作用,他们的来源分别做了说明:
| MAC地址标识 | 中文 |
|---|---|
| CFG_TWS_LOCAL_ADDR | 蓝牙本地地址,SDK内部第一次上电时随机生成 |
| CFG_TWS_REMOTE_ADDR | 蓝牙远端地址,双耳组队时交互对端本地生成 |
| CFG_TWS_COMMON_ADDR | 蓝牙公共地址,当未配对时为BT地址,配对后为生成的公共地址 |
| CFG_BT_MAC_ADDR | 蓝牙连接地址,工厂烧录时,生成的BT地址 |
| app_ble_set_mac_addr或le_controller_set_mac | 设置BLE地址的函数 |
| le_controller_get_mac | 获取BLE地址的函数 |
生成MAC地址代码说明
CFG_TWS_LOCAL_ADDR生成方式:
get_random_number(bt_cfg.tws_local_addr, 6);
syscfg_write(CFG_TWS_LOCAL_ADDR, bt_cfg.tws_local_addr, 6);
CFG_TWS_REMOTE_ADDR生成方式:
充电仓配对、智能盒子配对,交互本地地址时,被设置
if (sizeof(remote_addr) != syscfg_write(CFG_TWS_REMOTE_ADDR, charge_store_info->tws_local_addr, sizeof(remote_addr))) {
w_ret = -1;
}
CFG_TWS_COMMON_ADDR生成方式:
TWS耳机未配对时,这个地址跟随BT蓝牙MAC地址。当TWS耳机配对时,若与左耳的MAC地址,或重新计算出新的MAC地址
CFG_BT_MAC_ADDR的生成方式:
设工具配置区的数据cfg_tool.bin,工厂烧录时烧录的BT MAC地址。
BLE_MAC地址
1)BLE地址和BT地址有关联,通过BT地址计算产生BLE地址。2)通过其他方式设置BLE地址。
2、TWS耳机配对后地址分布
一对TWS耳机配对后,MAC地址分配分析如下:
| 左耳 | 右耳 |
|---|---|
| [00:02:55.263]ble_mac:B3 0E 2A 40 03 85 | [00:02:55.264]peer_ble_mac:23 76 09 2E 5D 1D |
| [00:02:55.264]BT_LOCAL_ADDR:02 FF B2 14 F9 C7 | [00:02:55.265]BT_MAC_ADDR:B3 0E 29 40 03 85 |
| [00:02:55.266]COMMON_ADDR:B3 0E 29 40 03 85 | [00:02:55.267]REMOTE_ADDR:35 DF B4 51 B1 04 |
| [00:02:52.810]ble_mac:23 76 09 2E 5D 1D | [00:02:52.811]peer_ble_mac:B3 0E 2A 40 03 85 |
| [00:02:52.812]BT_LOCAL_ADDR:35 DF B4 51 B1 04 | [00:02:52.813]BT_MAC_ADDR:23 76 08 2E 5D 1D |
| [00:02:52.814]COMMON_ADDR:B3 0E 29 40 03 85 | [00:02:52.814]REMOTE_ADDR:02 FF B2 14 F9 C7 |
3、总结说明:
如果TWS耳机为配对,BT的MAC地址 COMMON_ADDR 等于 BT_MAC_ADDR,COMMON_ADDR 不等于 COMMON_ADDR,远程地址REMOTE_ADDR为空
如果TWS耳机已配对,BT的MAC地址 COMMON_ADDR 为左耳地址BT_MAC_ADDR,不一定等于本身的BT_MAC_ADDR,COMMON_ADDR 不等于COMMON_ADDR,远程地址REMOTE_ADDR为对端的本地地址