蓝牙mesh设备接入天猫精灵或者百度音响

天猫与百度双网关方案

验证双vendor 支持天猫精灵&百度

一、mesh配网协议(mesh provisioning)

1.1、Provisioning协议栈

配网pdu

1.2、PB-ADV (通过百度或天猫精灵音响直接配网)
  1. The PB-ADV bear用来传输Generic Provisioning PDUs类型,PB-ADV的MTU是24字节。
  2. PB-ADV类型AD Type(0x29)
1.3、PB-GATT (通过天猫精灵APP配网)
  • PB-GATT是设备用代理协议将Proxy PDUs封装在了Provisioning PDUs中。
  • Device接受Proxy PDU通过provisioner WriteCommand发过来的PDU,然后通过Notify来发送Provisioning PUDs给provisioner.

二、实现方案

  1. 百度音响与天猫精灵配网都是基于广播承载层。
  2. 设备在flash地址0x78000处写入52字节的三元组,前26字节是百度的三元组,后26字节是天猫的三元组信息。
    初始化阶段,设备读取百度与天猫的三元组,由三元组信息计算出UUID,由UUID组成未配网广播包,每隔2秒发送一个未配网广播包。轮流发送百度与天猫的未配网广播包。

    UUID中包含2字节的CID,即天猫或者百度的model ID
    UUID中包含4字节的Product Id
    UUID中包含6字节的MAC

  3. Link Open 消息由配网器发给设备,包含16字节的UUID.设备端根据接收到的UUID判断配网器的类型是百度音响或是天猫精灵,把音响类型设置给全局结构体变量 provision_mag.dual_vendor_st
  4. 设置配网参数阶段,调用函数mesh_provision_par_set,
    调用mesh_ais_global_var_set()
    配置vendor model:
    vendor_id_check_and_update();
    
    设置网络参数
    • 百度音响重发7次,重发间隔是 10ms
    • 天猫精灵重发5次,重发间隔是 30ms
  5. 设备端根据配网器类型使用对应的model ID.后续接收vendor消息&发送vendor消息选用对应厂家的model ID和opcode.
方案时序图
百度音响 天猫精灵 开关面板 从地址0x78000读取百度音响的三元组,计算得到UUID1 从地址0x78026读取天猫精灵的三元组,计算得到UUID2 Unprovisioned Device Beacon UUID1(CID:0x011c) Unprovisioned Device Beacon UUID2(CID:0x01a8) loop [发送未配网广播包,每隔2秒发送一个] Link Open UUID2(CID:0x01a8) 开关面板根据UUID判断音响类型 Link ACK Link Open UUID2(CID:0x011c) 开关面板根据UUID判断音响类型 Link ACK alt [天猫精灵配网] [百度音响配网] Provisioning Process Provisioning Data 把vendor model配置给SDK,并设置消息重发次数&重发间隔等参数 opt [配网流程] Link Close 百度音响 天猫精灵 开关面板
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值