Card image
帮助和文档

BM29主从一体应用手册

BM29主从一体应用手册

PDF下载地址:BM29主从一体应用手册

 

 

 

 

 

 

 

 

 

BM29模块透传应用说明

 

 

 

 

 

 

 

 

 

 

 

 

版本V1.0.1

更新日期:20200505

深圳市易连物联网有限公司版权所有

 

 

本产品的规格书如有变更,恕不另行通知。

深圳市易连物联网有限公司保留在不另行通知的情况下,对其中所包含的规格书和材料进行更改的权利,同时由于信任所引用的材料所造成的损害(包括结果性损害)包括但不限于印刷上的错误和其他与此出版物相关的错误,易连物联网公司将不承担责任。

 


修改记录

 

文档版本

作者

发布日期

修改说明

V0.1

廖展锋

2020/04/26

基于AiLink模块透传应用说明V3.1.16_20200327_UART通用端,修改主端部分指令

V1.0

廖展锋

2020/04/28

添加《主从一体说明》,删除《协议透传产品部分》

V1.0.1

罗贤丽

2020/5/5

更新公司信息

 


 

 


1 概述

本文档适用于BM系列模块(BM29……

使用UART透传,MCU可以通过BM模块与APP进行相互数据透传。也支持模块参数设置满足不同需求,也可以通过协议透命令快速适配综合超级应用APPAiLink,快速实现血压计额温枪体温计婴儿秤等智能化。

请扫描此二维码下载AiLink APP。

如使用AILink时,需严格按照协议透传产品介绍里面的流程进行操作。

 

下文中表明的MCU为与BM模块连接交互的芯片,BLE则为BM模块.

2 说明

2.1 BLESlaveAPPMaster交互的每包数据默认最大为20byteMCU端一次性发送超过20byte时,BLE会将数据进行分包发送给APP50byte则分为20+20+103次发送给APP

2.2 BM模块上电需要时间进行配置,当配置完成,进入就绪时,BM模块会主动给MCU返回一个BM模块状态信息。详情请查看“设置、获取BM块状态”。

3 工作模式

Ø BM模块支持两种工作模式,断电模式和不断电休眠模式,用户可以根据自身需求合

理选择工作模式。

用户可以在设计PCB的时候,预留两种方式的电路。详情请查看硬件规格书规格书。

3.1 模式一:断电模式。

Ø 在此模式下,BM模块完全断电,需要供电才能正常工作,这种模式有利于省电。

Ø 在此模式下,MCU可以根据BM模块的连接状态选择合适的时间断电关机,例如,在非蓝牙连接状态时,MCU工作完10s后断电关机,在蓝牙连接状态时,工作完30s后断电关机。获取BM模块的连接状态,可以根据蓝牙状态脚(BT-CS)进行判断,也可以通过串口读取模块状态。这种做法有利于用户能够顺利传输数据到APP上,而不会出现反复关机断连问题。

工作流程:

1、BM模块上电。

2、BM模块上电就绪后,BM会给MCU返回BM模块状态

3、MCU设置CID 

4、MCU设置模块其他内容。

5、MCU发送数据。

6、MCUBM断电关机。

 

 

3.2 模式二:长供电休眠模式。

Ø 此模式下,BM模块需要长供电,不会断电关机(串口已关闭,BM处于低功耗模式)。

Ø 工作流程:

1、BM模块上电。

2、BM模块上电就绪后,BM会给MCU返回BM状态

3、MCU设置CID 

4、MCU设置模块其他内容。

5、MCU发送数据。

6、MCU 发送睡眠指令(可以选择是否开启低频广播),使BM模块进入低功耗模式。

若开启了BM模块进入了低功耗模式并且开启了低频广播,当BM模块连上APP后,BM模块会发送模块状态信息到MCU,同时蓝牙状态脚会拉低,用以唤醒MCUMCU可以用串口唤醒或者蓝牙状态脚唤醒)。

 

7、MCU主动唤醒BM模块。当BM模块处于休眠状态时,若MCU需要发送数据到BM模块,需要先发一条唤醒指令BM模块。注:BM模块刚唤醒时,是无法正常接收数据的,所以BM收到第一组的唤醒指令时,BM是不会回复MCU状态的。MCU可以发两次唤醒指令。

 

 

Ø 工作流程参考如下:

 

 

 

 

 

 

 

 

 

 

 

 


4 蓝牙接口(默认)

4.1  蓝牙名称:AiLink_xxxx

注:xxxxMac地址后4个字符

4.2  UUID说明

BM模块有两个服务UUID,一个是模块固定的服务UUID,为FFE0,一个是用户可以自定义的服务UUID,默认为FEE0

易连物联网的AiLink APP交互使用的服务UUIDFFE0

同时,两个UUID都可以作为普通的数据交互UUID

4.3 蓝牙连接服务列表1FFE0举例

4.3.1 服务UUID

0000FFE0-0000-1000-8000-00805F9B34FB

 

4.3.2 特征值UUID1

0000FFE1-0000-1000-8000-00805F9B34FB

属性read,write,write no response

功能 APP下发的数据会通过此UUID透传给MCU

 

4.3.3 特征值UUID2

0000FFE2-0000-1000-8000-00805F9B34FB

属性read,notify

功能 MCU发给BLE的数据由此UUID透传给APP

 

4.3.4 特征值UUID3

0000FFE3-0000-1000-8000-00805F9B34FB

属性read,write,write no response,notify

功能:APPBLE进行设置类指令UUIDwritenotify

 

4.4  广播数据

说明:广播数据有两类,用户只能选择其中的一类进行设置。

第一类广播:AiLink设置(默认)。使用我司AILInk APP接入的设置,需根据我司要求的格式进行设置。

第二类广播:用户自定义设置。不使用我司AiLink APP接入的设置,用户可以根据自身需求进行设置。若不设置则默认为我司设置。

 

4.4.1 第一类广播设置

AiLink设置广播数据内容包含(详情设置请查看设置读取CIDPIDVID):

1Company ID 。固定:496eInInet缩写,此处预留后续申请SIG company

2CID:产品类型(2bytes)(例如血压计为0x0001,额温枪为0x0002,祥查看协议透传产品介绍

3VID:厂商ID 2byte)  (由我司分配)

4PID:产品ID 2byte)  (由厂商分配)

5Mac地址(MAC是固定的,大小端序设置,默认小端序)

例如广播出来的自定义数据为:

6e49000100010001126134231102

6e49:为In0001CID,表示产品类型,0001VID,表示厂商ID0001PID,表示产品ID

126134231102Mac地址,因为是小端序,所以Mac地址是:02 11 23 34 61 12

 

蓝牙工具显示如下图:

 

 

 

4.4.2 第二类广播设置

若使用此类广播自定义数据,则第一类的广播自定义数据不启动(CIDVIDPID等设置不启用)。详情设置请查看第二类广播自定义设置

 


5 BM模块与MCU交互协议

5.1  设置(获取指令

l 设置类指令(以下指令不透传)

l 设置读取 模块广播名称 

l 设置、读取第二类自定义广播数据

l 设置读取 广播间隔时间

l 设置读取 连接间隔

l 设置、读取串口波特率

l 读取  MAC地址

l 读取  BM模块硬件\软件版本号

l 设置读取 MCU设备版本号

l 设置读取 模块主从状态

l 设置读取 模块无连接模式自动休眠时间。

l 设置  模块进入睡眠模式

l 设置  唤醒模块

l 设置读取 当前系统时间。

l 设置读取CIDVID PID

l 设置  模块重启

l 设置  模块恢复出厂设置。

l 设置、获取模块状态

l 设置  MCU的电池状态

l 设置  读取MCU所支持的单位

l 设置、取消使能绑定

l MCU端设置蓝牙锁的开锁类型

l MCU上传设备基本信息

l APP同步时间到MCU

 

l master设置、获取扫描的参数

l master设置、获取透传通道的目标(仅APPMCU

l master获取连接BMMAC地址

l master BM返回扫描到的广播数据

l master设置BM连接从模块

 

 


设置类指令格式规范(不透传):

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2 ~n

 

Payload

n+1

SUM1~n

(1~n)校验和

n+2

0x6A

包尾(注:n+2不能超过20

包头和包尾是固定的分别为0xA6,和0x6A

检验和是指byte1 + byte2 + +byte n 的和,取低位1 byte

设置指令里,数据的Byte数不能超过20

 

 

 

 

 

 


5.1.1  设置、获取广播名称(Type0102

设置蓝牙名称:

l 设置蓝牙名称可以设置为固定字符作为蓝牙名称,例如设置为swan,所有的模块都会显示为swan。同时也可以设置为固定蓝牙名称+_+ Mac 地址的方式,这样子有利于每个模块的名称都有差异。详细见如下指令说明:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x01

Type:设置蓝牙名称

Payload

3 ~ n

Name

名称(需要对应ASCII表)

n+1

Num

MAC字符个数:名称后面跟随的MAC字符的个数

0:代表没有,则是固定蓝牙名称。

1:代表后面带有mac地址的1个字符,例如:

Swan_x

2:代表后面带有mac地址的2个字符,例如:

Swan_xx

默认 Num=4Num最大为12

注:Name长度+_+Num 最大为15

n + 2

Sum

(1~n)校验和

N+3

0x6A

包尾

 

举例 蓝牙的MAC地址为 12 : 34 : 56 : 78 : 9A : BC

Ø 如果设置蓝牙名称为swan, 且不带MAC地址时,那么发送A6 06 01 73 77 61 6E 00 C0 6A ,则蓝牙名称为swan

Ø 如果设置蓝牙名称为swan,且带MAC地址2个字符,那么发送A6 06 01 73 77 61 6E 02 C2 6A ,则蓝牙名称为swan_BC

Ø 如果设置蓝牙名称为swan,且带MAC地址4个字符,那么发送A6 06 01 73 77 61 6E 04 C4 6A  ,则蓝牙名称为swan_9ABC

Ø 整个蓝牙名称长度最长为15个字符

 

 

 

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x01

Type:回复设置蓝牙名称结果

Payload

3

 

结果值:

0:成功(立即生效)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

      

     举例:设置成功

           返回 A6  02  01  00  03  6A

          

           设置失败

   返回 A6  02  01  01  04  6A

 

 

 

获取蓝牙名称:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x02

Type:获取蓝牙名称

Payload

3

0x03

(1~2)校验和

4

0x6A

包尾

 

BM返回蓝牙名称:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16 byte

2

0x02

Type:回复蓝牙名称

Payload

3 ~ n

Name

蓝牙名称(最长15 byte

n + 1

Sum

(1~n)校验和

n +2

0x6A

包尾

 

Ø 举例:蓝牙名称为swan_BC

Ø 发送查询指令 A6  01  02  03  6A

Ø BM返回名称: A6  08  02  73  77  61  6E  5F  42  43  A7  6A

      

5.1.2  设置、读取第二类自定义广播数据(Type0304

Ø 当用户想使用自定义广播数据时,不接入我司AiLink APP时,可使用此设置,不设置则默认为我司设置(第一类广播设置)。

设置广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x03

Type:设置为第二类广播自定义数据

Payload

3 ~ n

 

设置内容

最长为15byte

n + 1

Sum

(1~n)校验和

N+2

0x6A

包尾

 

BM返回设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x03

Type:回复设置为第二类广播自定义数据结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:

BMMac 地址为 11: 22 : 33 : 44 : 55 :66 .

用户若要想设置广播自定义数据为0x01 0x02 0x03 0x04 0x05+  MAC 地址”。

步骤:

1、用户先读取BMMAC地址

   发送读取MAC地址的指令,获取MAC地址 :11 22 33 44 55 66

2、MCU再发送设置广播自定义数据。

A6  0C  03  01  02  03  04  05  11  22  33  44  55  66  83  6A

 

 

 

 

 

 

 

获取第二类广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x04

Type:获取第二类广播自定义数据

Payload

3

0x05

(1~2)校验和

4

0x6A

包尾

 

返回第二类广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x04

Type:返回第二类广播自定义数据

Payload

3 ~ n

 

返回的内容

最长为15byte

n + 1

Sum

(1~n)校验和

N+2

0x6A

包尾

 

5.1.3  设置、获取广播间隔时间(Type0506

设置广播间隔:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x05

Type:设置广播间隔(单位:ms 范围:20-2000 ;默认200

Payload

3

 

广播间隔时间的高字节

4

 

广播间隔时间的低字节

5

Sum

(1~4)校验和

6

0x6A

包尾

 

Ø 举例:设置广播间隔为:1000ms

发送:A6  03  05  03  E8  F3  6A

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x05

Type:回复设置蓝牙广播间隔结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取广播间隔时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x06

Type:获取蓝牙广播间隔

Payload

3

0x07

(1~2)校验和

4

0x6A

包尾

 

 

BM返回广播间隔:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x06

Type:回复广播间隔时间(单位:ms

Payload

3

 

广播间隔时间的高字节

4

 

广播间隔时间的低字节

5

Sum

(1~4)校验和

6

0x6A

包尾

 

Ø 举例:广播间隔为 1000ms

返回 A6  03  06  03  E8  F4  6A

 

 

 

 

5.1.4  设置、获取连接间隔参数(Type0708

  设置连接间隔参数:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x07

Type:设置连接间隔参数(连接间隔时间,从设备延时,连接超时时间)

Payload

3

 

连接间隔时间的高字节

单位:ms;范围:20-2000;默认值40

4

 

连接间隔时间的低字节

5

 

从设备延时(Latency)(取值:0-4;默认值0

6

 

连接超时的高字节

单位:ms; 范围:1000~6000;默认值:6000

7

 

连接超时的低字节

8

Sum

(1~7)校验和

9

0x6A

包尾

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x07

Type:回复设置蓝牙连接间隔结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

获取连接间隔时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x08

Type:获取蓝牙连接间隔

Payload

3

0x09

(1~2)校验和

4

0x6A

包尾

 

BM返回连接间隔:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x08

Type:设置连接间隔参数(连接间隔时间,从设备延时,连接超时时间)

Payload

3

 

连接间隔时间的高字节

单位:ms;范围:20-2000;默认值40

4

 

连接间隔时间的低字节

5

 

从设备延时(Latency)(取值:0-4;默认值0

6

 

连接超时的高字节

单位:ms; 范围:1000~6000;默认值:6000

7

 

连接超时的低字节

8

Sum

(1~7)校验和

9

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.1.5  设置、获取发射功率(Type090A

设置蓝牙发射功率:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度(最大17byte

2

0x09

Type:设置蓝牙发射功率

Payload

3

dbm

发射功率值

0-5dbm

1-4dbm

2-3dbm

3-2dbm

4-1dbm

5-0dbm

61dbm

72dbm

83dbm

94dbm

105dbm

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x09

Type:回复设置蓝牙发射功率结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

获取蓝牙发射功率:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0A

Type:获取蓝牙发射功率

Payload

3

0x0B

(1~2)校验和

4

0x6A

包尾

 

BM返回发射功率值:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0A

Type:回复蓝牙发射功率

Payload

3

dbm

发射功率值

0-5dbm

1-4dbm

2-3dbm

3-2dbm

4-1dbm

5-0dbm

61dbm

72dbm

83dbm

94dbm

105dbm

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 


5.1.6  设置、读取串口波特率(Type0B0C

设置串口波特率:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0B

Type:设置串口波特率

Payload

3

 

Value

09600 (默认)

119200

238400   

357600

4115200  

5921600

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:设置串口波特率:9600

发送: A6  02  0B  00  0D  6A

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0B

Type:回复设置串口波特率结果

Payload

3

 

结果值:

0:成功。(以旧的波特率回复后再切换新的波特率)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取串口波特率

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0C

Type:获取串口波特率

Payload

3

0x0D

(1~2)校验和

4

0x6A

包尾

BM返回串口波特率值

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0C

Type:回复串口波特率设置值

Payload

3

 

串口波特率设置值

09600     

119200

238400   

357600

4115200   

5921600

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:若串口波特率为 9200

返回: A6  02  0C  00  0E  6A

5.1.7  读取MAC地址(Type0D

读取Mac地址值:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0D

Type:读取MAC地址值

Payload

3

0x0E

(1~2)校验和

4

0x6A

包尾

 

BM返回MAC地址值:

Byte

Value

Description

0

0xA6

包头

1

0x07

Payload长度

2

0x0D

Type:回复MAc地址值

Payload

3 ~ 8

 

Mac地址值(6byte、小端序)

9

Sum

(1~8)校验和

10

0x6A

包尾

举例:MAC 地址为11 22  33  44  55  66

返回:A6  07  0D  66  55  44  33  22  11  79  6A

5.1.8  读取BM模块软、硬件版本号(Type0E

读取BM模块软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0E

Type:读取BM模块软硬件版本号

Payload

3

0x0F

(1~2)校验和

4

0x6A

包尾

 

BM返回软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x0E

Type:回复BM模块软硬件版本号

Payload

3

 

产品型号。byte3 byte4 ASCII字符,byte5为数字。

4

 

5

 

6

 

硬件版本号 H

7

 

软件版本号S

8

 

定制版本号 P

9

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

10

 

1~12

11

 

1~31

12

Sum

校验和

13

0x6A

包尾

 

Ø 举例:如软硬件版本号为 BM16H1S1.0P0_20190507

解析:BM16为产品型号,对应实际实际数据为0x42  0x4D  0x10

H1为硬件版本号 1,对应实际数据为 0x01

S1.0 为软件版本号 1.0 ,对应实际数据为:0x0A(带1位小数点)

P0 为定制版本号,对应实际数据为 0

年:2019-2000=19,对应实际数据 0x13

       则返回: A6  0A  0E  42  4D  10  01  0A  00  13  05  07  E1  6A

 

 

 

 


5.1.9  设置、读取MCU软硬件版本号(Type0F10

MCU设置MCU软硬件版本号:

Ø 建议:客户更新MCU软硬件版本号给BM模块,以便于APP区分统计。

Ø 数据格式与BM的软硬件版本号格式保持一致。

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x0F

TypeMCU设置MCU软硬件版本号

Payload

3

 

MCU类型:由厂家自己定义,可以不定义

4

 

硬件版本号

5

 

软件版本号

6

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

7

 

1~12

8

 

1~31

9

Sum

校验和

10

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0F

Type:回复设置MCU软硬件版本号结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾 

 

获取MCU软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x10

Type:获取MCU软硬件版本号

Payload

3

0x11

(1~2)校验和

4

0x6A

包尾

 

BM返回MCU软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x10

Type:返回MCU软硬件版本号

Payload

3

 

MCU类型:由厂家自己定义

4

 

硬件版本号

5

 

软件版本号

6

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

7

 

1~12

8

 

1~31

9

Sum

校验和

10

0x6A

包尾

 

5.1.10  设置、读取模块的主从状态(Type1516

设置主从状态:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x15

Type:设置主从模式

Payload

3

 

从机是否断开连接:

1:断开连接

4

 

主机是否断开连接:

1:断开连接

5

 

(1~4)校验和

6

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x15

Type:回复设置主从模式结果

Payload

3

 

从机是否断开连接成功:

0:失败

1:成功

4

 

主机是否断开连接成功:

0:失败

1:成功

5

Sum

(1~4)校验和

6

0x6A

包尾

 

获取主从状态:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x16

Type:获取主从状态

Payload

3

0x17

(1~2)校验和

4

0x6A

包尾

 

 

BM返回主从模式状态:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x16

Type:回复主从模式

Payload

3

 

从机是否连接:

  0:未连接

  1:已连接

4

 

主机是否连接:

  0:未连接

1:已连接

5

Sum

(1~4)校验和

6

0x6A

包尾

 

5.1.11  设置、读取模块自动休眠时间(Type1718

可以设置模块无数据自动进入休眠模式(低功耗模式,此时设备的Tx要保持为高),但是要注意的是,当模块进入(休眠模式时,MCU在发数据前,需要提前发一组数据数据过来唤醒模块,模块才能正常开始接受数据。详可查看工作模式说明

设置自动睡眠时间:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x17

Type:设置无连接自动睡眠时间

Payload

3

 

自动睡眠标志位:

0:不开启自动休眠

1:开启自动休眠,模块没有连接自动进入低功耗模式

4

 

自动睡眠时间的最高字节

单位 :s

范围:

5 ~ 0xffffffff/100

(建议设为:60s

5

 

自动睡眠时间的次高字节

6

 

自动睡眠时间的次低字节

7

 

自动睡眠时间的最低字节

8

 

睡眠后是否立刻断开连接,是否开启低频广播:

0:断开连接,停止广播。

1:保持连接,开启广播。

2:断开连接 ,开启广播 。

3:保持连接 ,停止广播 。

9

 

低频广播间隔时间的高字节

单位:ms ;范围:20~2000;(建议设为1000);

10

 

低频广播间隔时间的低字节

11

Sum

(1~10)校验和

12

0x6A

包尾

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x17

Type:回复设置自动睡眠时间结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

获取自动睡眠时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x18

Type:获取自动睡眠时间值

Payload

3

0x19

(1~2)校验和

4

0x6A

包尾

 

BM返回自动睡眠时间值:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x18

Type:返回无连接时自动睡眠时间

Payload

3

 

自动睡眠标志位:

0:不开启自动休眠

1:开启自动休眠,模块没有连接

4

 

自动睡眠时间的最高字节

单位:s

5

 

自动睡眠时间的次高字节

6

 

自动睡眠时间的次低字节

7

 

自动睡眠时间的最低字节

8

 

睡眠后是否开启低频广播:

0:不开启

1:开启

9

 

低频广播间隔的高字节

单位 :ms ;范围 20~2000

10

 

低频广播间隔的低字节

11

Sum

(1~9)校验和

12

0x6A

包尾

 

5.1.12  设置模块进入睡眠(Type19

Ø BM模块进入休眠后,支持串口唤醒(MCU可以发任意数据唤醒模块,或者发送唤醒指令),支持蓝牙连接唤醒(需要开启睡眠后带广播功能,详情看下面设置进入睡眠指令格式)。

设置睡眠唤醒:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x19

Type:设置进入睡眠

Payload

3

 

Value

0x01

 

4

 

睡眠后是否断开连接,是否开启低频广播:

0:断开连接,关闭广播。

1:保持连接,开启广播。

2:断开连接 ,开启广播 。

3:保持连接 ,关闭广播 。

5

 

低频广播间隔时间的高字节

单位 :ms ;范围 20~2000(建议1000ms

6

 

低频广播间隔时间的低字节

7

Sum

(1~6)校验和

8

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x19

Type:回复设置进入睡眠的结果

Payload

3

 

结果值:

0:成功(成功后100ms后进入睡眠)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø MCUAPP都可以设置BM模块进入睡眠,BM模块在回复MCU/APP时,同时向APP/MCU发送BM当前状态“BM返回块状态

 

 

 

 

 

 

 

5.1.13  设置模块唤醒(Type1A

 设置模块唤醒:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1A

Type:设置模块唤醒

Payload

3

0x01

Value

  1:唤醒模块

4

0x1D

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1A

Type:回复设置模块唤醒结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.1.14  设置、读取系统当前时间(Type1B1C

该时间为蓝牙模块的系统时间。

  设置系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x07

Payload长度

2

0x1B

Type:设置系统当前时间

Payload

3

 

0x00 :除能,关闭时间功能(默认)

0x01 :使能,开启时间功能

4

 

年:年份=+2000

5

 

月(1~12

6

 

日(1~31

7

 

时(0~23

8

 

分(0~59

9

 

秒(0~59

10

Sum

校验和

11

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1B

Type:回复设置系统时间结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x1C

Type:获取系统当前时间

Payload

3

 

(1~2)校验和

4

0x6A

包尾

 

 

BM返回系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x08

Payload长度

2

0x1C

Type:返回系统当前时间

Payload

3

 

系统时间有效位

0:系统时间无效

1:系统时间有效

4

 

年:年份=+2000

5

 

月(1~12

6

 

日(1~31

7

 

时(0~23

8

 

分(0~59

9

 

秒(0~59

10

Sum

(1~9)校验和

11

包尾

0x6A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.1.15  设置、读取CIDVIDPIDType1D1E

Ø  CID为产品类型ID,请按照协议透传产品类型设置(必须设。详情查看协议透传指令产品介绍

Ø  VID 为设备厂家ID,请联系我司分配(选设)

Ø  PID 为产品型号ID,厂商自己分配,建议根据产品型号分配唯一值(选设)

Ø 以上三个值默认为0,不代表任何产品(调试阶段先设置CID

 

设置ID

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x1D

Type:设置ID

Payload

3

 

设置ID标志位

Bit00 :不设置 CIDCID值清0)。 1:设置CID

Bit10 :不设置VIDVID值清0)。  1:设置 VID

Bit20 :不设置 PIDPID值清0)。  1:设置PID

4

 

CID:产品类型ID的高字节

5

 

CID:产品类型ID的低字节

6

 

VID:厂商ID的高字节

7

 

VID:厂商ID的低字节

8

 

PID:产品ID的高字节

9

 

PID:产品ID的低字节

10

Sum

(1~9)校验和

11

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x1D

Type:回复设置ID结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

获取ID

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x1E

Type:获取ID设置值

Payload

3

0x1F

(1~2)校验和

4

0x6A

包尾

 

BM返回ID值:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x1E

Type:返回ID

Payload

3

 

设置ID标志位

Bit0 0 :不设置 CID。  1:设置CID

Bit1 0 :不设置VID。  1:设置 VID

Bit20 :不设置 PID。  1:设置PID

4

 

CID:产品类型ID的高字节

5

 

CID:产品类型ID的低字节

6

 

VID:厂商ID的高字节

7

 

VID:厂商ID的低字节

8

 

PID:产品ID的高字节

9

 

PID:产品ID的低字节

10

Sum

(1~9)校验和

11

0x6A

包尾

 

 

 

5.1.16  设置模块重启(Type21

 设置重启模块:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x21

Type:设置模块重启

Payload

3

0x01

Value

  0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x21

Type:回复设置模块重启结果

Payload

3

 

结果值:

0:成功(成功后,100ms后模块重启)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.1.17  设置恢复出厂设置(Type22

 设置恢复出厂设置:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x22

Type:设置恢复出厂设置

Payload

3

0x01

Value

  0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x22

Type:回复设置模块重启结果

Payload

3

 

结果值:

0:成功(成功后,100ms后恢复出厂设置)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

5.1.18  设置、获取BM模块状态(Type2526

设置蓝牙连接状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x25

Type:设置蓝牙连接状态

Payload

3

 

主动断开连接标志位

1:立刻断开连接

0:不断开连接

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x25

Type:回复设置蓝牙连接状态结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

获取模块状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x26

Type:获取状态

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

BM返回模块状态:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x26

Type:返回模块状态

Payload

3

 

连接状态

0:无连接

1:已连接

 

4

 

工作状态

0:唤醒

1:进入休眠

2:模块准备就绪

5

Sum

(1~4)校验和

6

0x6A

包尾

 

5.1.19  MCU上报MCU电池状态Type2728

上报MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x27

Type:设置MCU电池状态

Payload

3

 

电池充电状态:

0:没有充电(默认)

1:充电中

2:充满电

3:充电异常

4

 

电池电量百分比 (0100%

5

Sum

(1~4)校验和

6

0x6A

包尾

BM回复MCU上报结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x27

Type:回复MCU设置电池结果

Payload

3

 

结果值:

0:成功(成功后会把电池电量上传到APP

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

查询MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x28

Type:获取MCU电池状态

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

 

返回MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x28

Type:返回MCU电池状态

Payload

3

 

电池充电状态:

0:没有充电(默认)

1:充电中

2:充满电

3:充电异常

4

 

电池电量百分比 (0100%

MCU没有数据上传时,默认为0xFFFF

5

Sum

(1~4)校验和

6

0x6A

包尾


5.1.20  APP查询MCU拥有的单位(Type2C

Ø APP端界面的单位显示是根据MCU端所拥有的单位来做处理的,所以当APP连接到MCU时,会发送读取指令来获取MCU端所拥有的单位,所以MCU端收到该指令时,则务必返回相应的单位数据(不返回则使用系统默认值)。

 

Ø MCU端需要开机后直接主动上传单位到APP

 

APP查询MCU端单位指令:

BM模块直接将此指令传给MCU

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2C

TypeAPP读取MCU端单位

Payload

3

 

Value

0x01 

4

 

校验和

5

0x6A

包尾

 

MCU端返回所拥有的单位指令:

单位类型

类型编号

类型

支持类型(Bit15~Bit0

Bit=0 不支持

Bit=1 支持

01

重量

Bit0kg

Bit1

Bit2lboz

Bit3oz

Bit4stlb

Bit5g

Bit6lb (纯lb显示)

02

长度

Bit0cm

Bit1inch

Bit2ft-in

03

温度

Bit0  C

Bit1 : F

04

血压

Bit0mmhg

Bit1kPa

05

轮胎胎压压力

Bit0Kpa

Bit1Psi

Bit2Bar

 

BM模块通过A6指令协议传给APP

数据格式*(每组数据长度不能多于20byte

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2C

TypeMCU回复单位

Payload

3

 

单位类型:例如:重量 =01,长度=02,温度=03

4

 

单位支持类型高位:

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

例如:重量支持kgoz

byte4=0x00 byte5=0x09

5

 

单位支持类型低位:

6

 

单位类型:

7

 

单位支持类型高位

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

8

 

单位支持类型低位

9

 

单位类型:

10

 

单位支持类型高位

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

11

 

单位支持类型低位

12

 

校验和

13

0x6A

包尾

 

 

Ø 举例:

APP读取MCU单位,发送指令:A6  02  2C  01  2F  6A

l MCU只拥有重量单位kg和斤,则返回:A6 04 2C 01 00 03 34 6A

l MCU只拥有重量单位kg和长度单位inch,则返回:A6 07 2C 01 00 01 02 00 02 39 6A

l MCU只拥有胎压单位KpaPsiBar和温度单位℃、℉和重量单位kg 和 长度单位cm

则返回:A6 0D 2C 05 00 07 03 00 03 01 00 01 02 00 01 50 6A

n 若是MCU支持的类型太多,一组数据传不完,则可以分开多组来传,数据格式不变。

 

 


5.1.21  设置使能绑定、取消使能绑定(Type32

此条指令主要用以AILink APP连接协议透传产品,例如蓝牙锁,MCU开发端可以根据协议透传产品里的工作流程查看此指令的使用。(流程里无用到则说明该产品类型不需调到此指令)

MCU设置指令

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x32

TypeMCU设置BM使能、取消绑定

Payload

3

 

Value

0:取消绑定

1:使能绑定

4

Sum

(1~n)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x32

TypeBM回复设置绑定结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.1.22  MCU设置蓝牙锁开锁类型(Type3334

此条指令主要用以AILink APP的蓝牙锁设备,MCU端需要主动设置蓝牙锁的开锁类型。

MCU设置指令

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x33

TypeMCU上传MCU支持的蓝牙锁开锁类型

Payload

3

 

MCU使用的绑定类型 :

MCU可以根据自身的需求选择不同的绑定方式与APP进行绑定。

1:绑定码绑定方式(需要用户输入APP界面上的绑定码)

2:两次按功能键确认方式(需要用户按两次功能键)

3:一次按功能键确认方式(需要用户按一次功能键

4 ~5

 

设备支持的开锁类型:(MCU需要声明自身所支持的开锁类型,以方便APP界面的同步)

 

Bit =1 支持,Bit=0 不支持

Byte4 ~ byte5

Byte4_Bit 0:按键密码(界面)

Byte4_Bit 1:指纹密码

Byte4_Bit 2IC

Byte4_Bit 3:蓝牙遥控器

.......

6

Sum

(1~n)校验和

7

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x33

TypeBM回复接收蓝牙锁支持类型结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

APP读取开锁类型指令

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x34

Type:锁的A6指令

Payload

3

 

Value

0x01APP读取蓝牙锁开锁类型

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复给APP的开锁类型

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x34

Type:锁的A6指令

Payload

3

 

Value

0x01BM上传MCU支持的蓝牙锁开锁类型

4

 

MCU使用的绑定类型 :

MCU可以根据自身的需求选择不同的绑定方式与APP进行绑定。

1:绑定码绑定方式(需要用户输入APP界面上的绑定码)

2:两次按功能键确认方式(需要用户按两次功能键)

3:一次按功能键确认方式(需要用户按一次功能键

5~6

 

设备支持的开锁类型:(MCU需要声明自身所支持的开锁类型,以方便APP界面的同步)

 

Bit =1 支持,Bit=0 不支持

Byte5~ byte6

Byte5_Bit 0:按键密码(界面)

Byte5_Bit 1:指纹密码

Byte5_Bit 2IC

Byte5_Bit 3:蓝牙遥控器

.......

7

Sum

(1~n)校验和

8

0x6A

包尾

 

 

5.1.23  MCU上传设备基本信息(Type3536

此条指令主要用MCU上传设备的一些基本的信息,用于APP端数据的同步,详情请查看对应的协议透传产品介绍。

MCU设置设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x10

Payload 长度

2

0x35

TypeMCU上传设备的基本信息

Payload

3

0x01

数据有效标志位

0x01

4~17

 

数据

18

Sum

(1~n)校验和

19

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x35

TypeBM回复结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

读取设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x36

Type:读取设备的基本信息指令

Payload

3

 

Value

0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM返回设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x10

Payload 长度

2

0x36

TypeMCU上传设备的基本信息

Payload

3

0x01

数据有效标志位

0x01

4~17

 

数据

18

Sum

(1~n)校验和

19

0x6A

包尾

 

 

 

 

 

 

 

5.1.24  APP同步时间到MCUType3738

对于某些设备,具有时间功能的,此时,可利用此指令进行数据的同步。

l APP下发时间。

Byte

Default

Description

0

0xA6

包头

1

 

Payload长度(最大15byte

2

0x37

TpyeAPP同步时间

Payload

3~9

 

时间:7byte

年(当前年份-2000

星期(1~7  1=周一 ~  7=周日)

10

SUM1~n

(1~n)校验和

11

0x6A

包尾

 

l MCU返回同步时间结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x37

TypeMCU返回时间同步结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

l MCU 请求时间

设备有时间功能,且在与APP连接状态时,可以请求时间更新,APP收到该请求,会下发时间同步。

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x38

TypeMCU请求APP下发时间

Payload

3

 

Value

0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 


master特有指令(master端固件也支持上面的普通指令

5.1.25 设置、获取扫描的参数(Type292A

设置扫描参数

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x29

Type:设置扫描参数

Payload

3

 

扫描状态:

  0:停止扫描

  1:扫描所有设备的广播内容及RSSI

  2:扫描所有设备的广播内容

  3:扫描指定MAC地址的RSSI

  4:扫描指定MAC地址的广播内容

  5:扫描含特定UUIDRSSI

  6:扫描含特定UUID的广播内容

  7:扫描以特定名字开头的RSSI

  8:扫描以特定名字开头的广播内容

 

4~5

 

扫描间隔(小端序)

6~n

 

附加内容:

Byte334时,长度为6,内容为MAC地址;

56时,长度为2,内容为需要过滤的一个UUID

78时,长度最长为13,内容为需要过滤的名字开头

N+1

Sum

1-n)校验和

N+2

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x29

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

6

0x6A

包尾

 

读取扫描参数

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x2A

Type:读取扫描参数

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

BM返回设备扫描参数

Byte

Value

Description

0

0xA6

包头

1

 

Payload 长度

2

0x2A

Type:读取扫描参数

Payload

3

 

扫描状态:

  0:停止扫描

  1:扫描所有设备的广播内容及RSSI

  2:扫描所有设备的广播内容

  3:扫描指定MAC地址的RSSI

  4:扫描指定MAC地址的广播内容

  5:扫描含特定UUIDRSSI

  6:扫描含特定UUID的广播内容

  7:扫描以特定名字开头的RSSI

  8:扫描以特定名字开头的广播内容

4~5

 

扫描间隔

6~n

 

数据

N+1

Sum

(1~n)校验和

N+2

0x6A

包尾

5.1.26 设置、获取透传通道的目标(Type2D2E

设置透传通道的目标

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2D

Type:设置透传通道的目标

Payload

3

 

设置对象:

0MCU的透传设置

1APP的透传设置

2:连接的从端透传设置

4

 

透传的目标:

  0:直接连接的MCU

  1:另一个PEER

5

Sum

1-4)校验和

6

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x2D

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

6

0x6A

包尾

 

读取透传通道的目标

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x2E

Type:读取扫描参数

Payload

3

 

读取的对象

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM返回透传通道的目标

Byte

Value

Description

0

0xA6

包头

1

 

Payload 长度

2

0x2E

Type:读取扫描参数

Payload

3

 

读取的对象:

0MCU的透传设置

1APP的透传设置

2:连接的从端透传设置

4

 

透传的目标:

  0:直接连接的MCU

  1:另一个PEER

4

Sum

(1~4)校验和

5

0x6A

包尾

 

 

5.1.27 读取连接BMMAC地址(Type2F

读取连接BMMAC地址

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x2F

Type:读取连接BMMAC地址

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

BM返回透传通道的目标

Byte

Value

Description

0

0xA6

包头

1

 

Payload 长度

2

0x2F

Type:读取连接BMMAC地址

Payload

3~8

 

MAC地址(小端)

9

Sum

(1~8)校验和

10

0x6A

包尾

 

 

5.1.28 BM返回扫描到的数据(Type30

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x30

Type:返回扫描到的数据

Payload

3~8

 

该设备的mac地址,小端序

9

 

RSSI值(如50-50dbm的意思

10~n

 

广播数据(当不需返回该数据时无该数据

n+1

 

校验和

n+2

0x6A

包尾

此指令比较特殊,返回的总数据长度可以超过20byte

举例:

A6 19 30 BB FF B9 EC B4 01 32 AC 00 C6 5A 5A 01 00 7B 26 0B 0B BB FF B9 EC B4 01 81 6A

mac地址:BB FF B9 EC B4 01(小端序

信号强度:-50dbm

厂商自定义数据为:AC 00 C6 5A 5A 01 00 7B 26 0B 0B BB FF B9 EC B4 01

5.1.29 设置BM连接从设备(Type39

设置连接从设备

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x39

Type:设置BM连接

Payload

3~8

 

MAC地址6个字节,小端序

9

Sum

(1~8)校验和

10

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x39

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

3:连接超时

4

Sum

(1~3)校验和

5

0x6A

包尾

5.1.30 BM收到主机角色的数据(Type3A

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x3A

Type:返回扫描到的数据

Payload

3~n

 

 

n

 

校验和

n+1

0x6A

包尾

5.1.31 BM收到从机角色的数据(Type3B

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x3B

Type:返回扫描到的数据

Payload

3~n

 

 

n

 

校验和

n+1

0x6A

包尾

 

5.2   协议透传指令

根据已定好的协议,做数据的传输。

传输格式:

Byte

Default

Description

0

0xA7

包头

1~2

 

产品类型CID

3

 

Payload长度(最大15byte

n

 

Payload

 

n+1

SUM1~n

(1~n)校验和

n +2

0x7A

包尾

 

协议透传指令的识别:

包头和包尾是固定的:0xA70x7A

校验和是指byte1 ++ byte n 的值,取低8位。

 

主从协议传输格式:

Byte

Default

Description

0

0xAA

包头1

1

0xAB

包头2

2

 

接收这个数据的目标:

0MCU

1MCU连接的另一个PEER

3~n

 

Payload

 

n+1

SUM1~n

(2~n)校验和

 

协议透传指令的识别:

包头是固定的:0xAA0x7B,接收的目标;包尾是校验和。

校验和是指byte2 ++ byte n 的值,取低8位。

 

举例:

发送给BM连接的另一个PEER数据:0x01,0x12

需要发送 0xAA,0xAB,0x01,0x01,0x12,0x14

5.3   数据透传

不符合设置指令与协议透传指令的数据一律采用数据透传,即收到什么数据就传什么数据。

 

 

 


6 主从一体说明

6.1 透传部分说明

主从一体透传为BM模块(以下简称为BM)被一个主机角色(以下简称为Host Peer)连接,同时连接一个从机角色(以下简称为Slave Peer)。他们的数据透传方向有:

 

设备的数据透传方向:

l Host PeerBM为蓝牙连接,于Characteristic FFE2FFE1进行数据透传,默认数据透传为①;可设置的数据透传方向为①、⑤

l BMMCU为串口连接,默认数据透传为②;可设置的数据透传方向为②、③

l Slave PeerBM为蓝牙连接,于Characteristic FFE2FFE1进行数据透传,默认数据透传为④;可设置的数据透传方向为④、⑥

Host PeerSlave Peer的方向,可于Characteristic FFE3通过设置透传通道指令自行配置;MCU可以通过串口对三个角色的方向进行配置。除此之外,BM还提供了协议透传以增加灵活性:

Host PeerSlave PeerCharacteristic FFE2FFE1MCU串口在原有的数据添加包头(0xAA0xAB0xXX透传目标)及包尾(0xXXByte3即透传目标至数据结束的累积和)直接发送至选定的透传目标,例如:

Host Peer发送0xAA,0xAB,0x01, 0x11,0x22 ,0x34

如果连接了Slave PeerSlave Peer将直接收到数据0x110x22

 

 

设备的数据接收说明:

Host PeerSlave Peer直接接收原始数据不带来源标识

MCU收到非默认的数据透传,会添加包头、包尾以标识来源(A6指令的0x3A(Host Peer),0x3B(Slave Peer)

 

*连接Slave Peer时,建议发送间隔大于200ms

6.2 扫描、广播、连接部分说明

l 设备支持直接配置广播间隔、扫描间隔,同时进行扫描及广播。

l 设备发起连接从机角色时,广播、扫描将暂时关闭(最长2s返回连接失败)。连接不管失败或成功后,均会尝试重启广播、扫描(已被主机角色连接后,广播默认不再开启)

 


7 使用/测试指导

7.1  测试工具

 

 

 

7.2  测试步骤

 

8 自定义说明

 

 

 

 

9 联系我们

深圳市易连物联网有限公司

地址:深圳市宝安区西乡街道银田工业区侨鸿盛文化创意园写字楼A栋五层502

Tel: +860755-81773367    

Email:hw@elinkthings.com

Web: www.elinkthings.com

 

 

10 附录

 

Copyright © 2020 深圳市易连物联网有限公司 All rights reserved.  

粤ICP备20028711号