查看: 878|回复: 0

[技术交流] E55主从一体 EVK快速上手指南

[复制链接]

93

主题

99

帖子

381

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
381
发表于 2022-6-14 11:45:54 | 显示全部楼层 |阅读模式
  一.背景

  为了方便描述,本文中的主、从机都使用E55主从一体开发板、搭配sscom串口调试助手,其中E55模块型号L-BTMEB55-G0SP4。

  本文主要描述客户使用E55主从一体模块时,最常用的一些功能及相关指令介绍。

  如果客户想了解开发板操作使用,请参考文章AN-5117 主、从机间透传通信之小白上手指南

  如果客户想了解具体主从机间通信流程?请参考文章AN-5102 主从机完整通信流程介绍、通信参数配置建议
  二. 作为从机角色

  1.读取一些模块固有参数

  1.1 读取MAC地址
  发→◇01 FC F0 01 00
  收←◆04 FC F0 08 00 00 05 80 E3 38 C1 A4        //从机MAC地址是05 80 E3 38 C1 A4。

  1.2 读取固件版本
  发→◇01 FC F0 01 03
  收←◆04 FC F0 07 00 03 52 65 76 30 31       //固件版本是Rev01。

  1.3 读取源码版本
  发→◇01 FC F0 01 02
  收←◆04 FC F0 0D 00 02 76 31 2E 31 2E 32 32 30 34 31 35          //源码版本是v1.1.220415。

  1.4 设置设备名称
  发→◇01 FC 38 07 00 6C 69 65 72 64 61        //设置设备名称是lierda
  收←◆04 FC 38 01 00

  2.设置广播参数

  2.1 设置广播间隔是1s
  发→◇01 FC 32 04 01 01 40 06      //1s=1000ms=1000000us,1000000us÷625us=1600=0x640,注意指令中每个≥ 2 字节的独立数据单元, 都应以低字节序传输,所以要填0x40 06。
  收←◆04 FC 32 01 00

  2.2 设置广播数据
  发→◇01 FC 32 11 05 01 0E    02 01 06     03 03 60 FE     06 FF 73 6C 61 76 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00          // 02 01 06字段,是协议规定每个广播包必须包含的;03 03 60 FE字段,是利尔达从机固定广播字节,03代表是服务类型,60FE代表服务的UUID值是FE60。在原先基础上,新增1个厂商自定义类型数据,有效长度len是6,数据类型type是0xFF,代表厂商自定义数据类型;具体广播数据值vale是0x73 6C 61 76 65,字面意思是slave。
  [16:12:57.879]收←◆04 FC 32 01 00
  3.设置连接参数
  发→◇01 FC 36 09 03   08 00   08 00   00 00   B0 04         //设置初始最小、最大连接间隔是10ms,初始从机潜伏是0次,初始连接丢失监测超时时间是12s。
  收←◆04 FC 36 01 00

  4.设置配对密码
  发→◇01 FC 3C 08 00 01    31 32 33 34 35 36             //设置配对密码是123456
  收←◆04 FC 3C 01 00

  至此,从机参数已配置完毕,下一步等待被主机连接,主从机间进行相互通信。

  5.更新连接参数(待连接建立后,主机、从机都可发起更新连接参数,将连接参数更新成目标值)
  发→◇01 FC 04 0E    5D 0E 74 38 C1 A4     08 00   50 00   00 00    90 01     // 注意MAC地址要填主机的MAC地址(如何获取主机MAC地址?连接建立后,上报的0x84连接建立事件中会上报对方主机的MAC地址),最小连接间隔设置成10ms,最大连接间隔设置成100ms,其他不变。
  收←◆04 FC 04 01 00
  收←◆04 FC 86 0D 00 5D 0E 74 38 C1 A4 50 00 00 00 90 01        //0x86连接更新事件上报,00代表连接参数更新成功,对方设备地址是5D 0E 74 38 C1 A4,连接间隔是100ms,从机潜伏次数是0次,连接丢失监测超时是4s.

  6. 更新MTU(被E55主机连接,不需要从机更新MTU,因为主机默认连接建立成功会更新一次MTU)
  发→◇01 FC 10 07 5D 0E 74 38 C1 A4        //更新MTU是103bytes,此处MAC地址要填主机的。
  收←◆04 FC 10 01 00

  7.写特征值(UUID)

  从机给主机写数据:
  发→◇01 FC 13 0D 5D 0E 74 38 C1 A4 62 FE 01 03 77 88 99             ////从机通过0xFE62上行通道给主机写数据778899,注意MAC地址要填主机的,UUID要填从机的notify通道UUID值,选择无需确认就能执行下一次操作。
  收←◆04 FC 13 01 00

  主机收到从机发来的数据:
  收←◆04 FC 8C 0E 00 05 80 E3 38 C1 A4 01 62 FE 03 77 88 99    //主机收到0x8C事件,对方从机MAC地址是05 80 E3 38 C1 A4,收到的数据类型是notify,UUID是FE62,数据长度是3bytes,内容是778899。

  8.断开连接
  发→◇01 FC 03 06 5D 0E 74 38 C1 A4                //注意此处MAC地址要填对方主机的。
  收←◆04 FC 03 01 00 04 FC 85 08 00 5D 0E 74 38 C1 A4  13    //0x85连接断开事件上报,0x13代表断开原因是对方主机主动断开连接。

  三. 作为主机角色

  1.读取一些模块固有参数

  1.1读取MAC地址
  发→◇01 FC F0 01 00
  收←◆04 FC F0 08 00 00 5D 0E 74 38 C1 A4        //主机MAC地址是5D 0E 74 38 C1 A4

  1.2读取固件版本
  发→◇01 FC F0 01 03 □
  收←◆04 FC F0 07 00 03 52 65 76 30 31      //固件版本是Rev01。

  1.3 读取源码版本
  发→◇01 FC F0 01 02
  收←◆04 FC F0 0D 00 02 76 31 2E 31 2E 32 32 30 34 31 35           //源码版本是v1.1.220415。

  2. 设置扫描参数

  2.1设置扫描间隔
  发→◇01 FC 34 04 01 A0 00     5A    //设置扫描间隔是100ms,扫描占空比是90%。
  收←◆04 FC 34 01 00

  2.2设置扫描模式
  发→◇01 FC 34 02 02 01       //设置扫描模式为主动扫描。
  收←◆04 FC 34 01 00

  2.3 设置扫描RSSI阈值
  发→◇01 FC 34 02 05 BC       //设置扫描阈值是-60dBm。
  收←◆04 FC 34 01 00  

  2.4 设置是否允许重复上报
  发→◇01 FC 34 02 08 00        //设置一次扫描任务中不允许重复上报,即多次主机多次收到某个从机广播包,那么只在第一次收到时上报应用层,之后再收到广播包时不上报。
  收←◆04 FC 34 01 00

  2.5 设置扫描任务执行方式
  发→◇01 FC 34 02 09 01          //设置为连续扫描。
  收←◆04 FC 34 01 00

  2.6 设置过滤广播要查找的字节数
  发→◇01 FC 34 21 0A 0E   02 01 06 03 03 60 FE 06 FF 73 6C 61 76 65   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00           //收到的广播包中要过滤的字节数是14bytes,过滤内容是02 01 06 03 03 60 FE 06 FF 73 6C 61 76 65
  收←◆04 FC 34 01 00

  3. 设置连接参数
  发→◇01 FC 36 0F 00 A0 00 5A 01 C8 00 08 00 08 00 00 00 B0 04         //设置扫描间隔是100ms,扫描占空比是90%,扫描时使用的PHY是PHY_1MBPS,连接失败监测超时是20s(代表当应用层已知晓从机MAC地址,不扫描,MCU直接给模块发0x02发起连接指令,如果模块20s内未跟从机成功建立连接,那么判定本次连接失败),设置初始最小、最大连接间隔是10ms,初始从机潜伏是0次,初始连接丢失监测超时时间是12s(代表连接建立后,主机12s内未收到从机的数据包,那么判定连接已断开)。
  收←◆04 FC 36 01 00

  至此,主机参数已配置完毕,下一步开始扫描周围从机,当扫描到想要的从机时,对其发起连接,待连接建立成功,相互收发数据。数据收发完毕,主机断开连接。

  4.开始扫描
  发→◇01 FC 01 01 01            //开始扫描
  收←◆04 FC 01 01 00
  收←◆04 FC 82 19 00 00 00 05 80 E3 38 C1 A4 D5 0E 02 01 06 03 03 60 FE 06 FF 73 6C 61 76 65            //0x82收到广播事件上报,经过广播数据过滤,只有广播数据=0x02 01 06 03 03 60 FE 06 FF 73 6C 61 76 65的广播包被上报给应用层。

  5.发起连接
  发→◇01 FC 02 07 00 05 80 E3 38 C1 A4            //发起连接
  收←◆04 FC 02 01 00
  收←◆04 FC 84 0E 00 05 80 E3 38 C1 A4 01 08 00 00 00 B0 04            //0x84连接建立事件上报,对方从机设备地址是05 80 E3 38 C1 A4 ,本机角色是主机,连接间隔是10ms,从机潜伏次数是0次,连接丢失监测超时是12s.
  04 FC 89 09 00 05 80 E3 38 C1 A4 67 00           //0x89 MTU更新事件上报,对方从机MAC地址是05 80 E3 38 C1 A4,MTU最大传输单元值是103bytes,即每次数据传输量应≤100bytes。(E55作为主机角色时,建立连接后会自动更新MTU至最大103bytes,无需应用层发指令更新)
  收←◆04 FC 8E 03 00 80 00        //0x8E配对请求事件上报。

  6.输入从机配对密码
  发→◇01 FC 3C 08 01 01 31 32 33 34 35 36           //输入从机配对密码是123456
  收←◆04 FC 3C 01 00
  收←◆04 FC 8F 08 00 00 05 80 E3 38 C1 A4      //0x8F配对状态上报事件,00代表配对成功。
  收←◆04 FC 8A 07 00 05 80 E3 38 C1 A4          //0x8A服务发现完成事件上报,00代表服务发现成功。

  7. 更新连接间隔
  发→◇01 FC 04 0E 05 80 E3 38 C1 A4 08 00 50 00 00 00 90 01            //注意MAC地址要填从机的MAC地址,最小连接间隔设置成10ms,最大连接间隔设置成100ms,其他不变。
  收←◆04 FC 04 01 00
  收←◆04 FC 86 0D 00 05 80 E3 38 C1 A4 40 00 00 00 90 01    //0x86连接更新事件上报,00代表连接参数更新成功,对方从机MAC地址是05 80 E3 38 C1 A4,连接间隔是100ms,从机潜伏次数是0次,连接丢失监测超时是4s.

  8.使能notify
  发→◇01 FC 15 08 05 80 E3 38 C1 A4    62 FE              //使能notify,注意这里要填对方从机的MAC地址,UUID填对方从机的notify通道对应的UUID值。
  收←◆04 FC 15 01 00

  9.写特征值(UUID)
  主机给从机写数据:
  发→◇01 FC 13 10   05 80 E3 38 C1 A4   61 FE 01 06 11 22 33 44 55 66           //主机通过0xFE61下行通道给从机写数据,注意MAC地址要填从机的,UUID要填从机的write 通道UUID值,选择无需确认就能执行下一次操作。
  [14:18:33.814]收←◆04 FC 13 01 00

  从机收到主机发过来的数据:
  收←◆04 FC 8C 11 00 5D 0E 74 38 C1 A4 00 61 FE 06 11 22 33 44 55 66    //从机收到0x8C事件,对方主机MAC地址是5D 0E 74 38 C1 A4,收到的数据类型是write,UUID是FE61,数据长度是6bytes,内容是112233445566。

  8.断开连接
  发→◇01 FC 03 06 05 80 E3 38 C1 A4  □            //断开连接,注意MAC地址要填对方从机的。
  收←◆04 FC 03 01 00 04 FC 85 08 00 05 80 E3 38 C1 A4  13         //0x85连接断开事件上报,0x13代表断开原因是对方从机主动断开连接。

  四. 参考文档

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表