PDF下载地址:ailink 胎压转接板应用手册
AiLink胎压转接板协议透传应用说明
版本:V3.1.19
更新日期:2020年04月29日
深圳市易连物联网有限公司版权所有
本产品的规格书如有变更,恕不另行通知。
深圳市易连物联网有限公司保留在不另行通知的情况下,对其中所包含的规格书和材料进行更改的权利,同时由于信任所引用的材料所造成的损害(包括结果性损害),包括但不限于印刷上的错误和其他与此出版物相关的错误,易连物联网将不承担责任。
文档版本 |
作者 |
发布日期 |
修改说明 |
3.1.15 |
梁永新 |
2020/3/25 |
1、增加8电极体脂秤协议 |
3.1.16 |
Lyx |
2020/3/27 |
1、修改八电极体脂秤里的重量协议 |
3.1.17 |
lxl |
2020/4/21 |
1、增加钳表协议 |
3.1.18 |
lxl |
2020/4/23 |
1. 指定当前协议对应的钳表型号 2. 修改钳表协议中byte13、byte14的内容 |
3.1.19 |
lxl |
2020/4/29 |
1.更改公司信息 2.拆分协议为通用透传和协议透传 |
本文档适用于BM系列模块(BM02/08/09/16/20/21/22……)。
使用UART透传,MCU可以通过BM模块与APP进行相互数据透传。也支持模块参数设置满足不同需求,也可以通过协议透传命令快速适配综合超级应用APP:AiLink,快速实现血压计、额温枪、体温计、婴儿秤、身高仪等智能化。
请扫描此二维码下载AiLink APP。
如使用AILink时,需严格按照协议透传产品介绍里面的流程进行操作。
下文中表明的MCU为与BM模块连接交互的芯片,BLE则为BM模块.
2.1 BLE(Slave)与APP(Master)交互的每包数据默认最大为20byte,当MCU端一次性发送超过20byte时,BLE会将数据进行分包发送给APP,需50byte则分为20+20+10,分3次发送给APP。
2.2 BM模块上电需要时间进行配置,当配置完成,进入就绪时,BM模块会主动给MCU返回一个BM模块状态信息。详情请查看“设置、获取BM模块状态”。
2.3 ailink协议透传应用手册需要和ailink通用透传应用手册一起使用。
Ø BM模块支持两种工作模式,断电模式和不断电休眠模式,用户可以根据自身需求合
理选择工作模式。
用户可以在设计PCB的时候,预留两种方式的电路。详情请查看硬件规格书规格书。
Ø 在此模式下,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、MCU、BM断电关机。
Ø 此模式下,BM模块需要长供电,不会断电关机(串口已关闭,BM处于低功耗模式)。
Ø 工作流程:
1、BM模块上电。
3、MCU设置CID 。
4、MCU设置模块其他内容。
5、MCU发送数据。
6、MCU 发送睡眠指令(可以选择是否开启低频广播),使BM模块进入低功耗模式。
若开启了BM模块进入了低功耗模式并且开启了低频广播,当BM模块连上APP后,BM模块会发送模块状态信息到MCU,同时蓝牙状态脚会拉低,用以唤醒MCU(MCU可以用串口唤醒或者蓝牙状态脚唤醒)。
7、MCU主动唤醒BM模块。当BM模块处于休眠状态时,若MCU需要发送数据到BM模块,需要先发一条唤醒指令到BM模块。注:BM模块刚唤醒时,是无法正常接收数据的,所以BM收到第一组的唤醒指令时,BM是不会回复MCU状态的。MCU可以发两次唤醒指令。
Ø 工作流程参考如下:
注:xxxx为Mac地址后4个字符
BM模块有两个服务UUID,一个是模块固定的服务UUID,为FFE0,一个是用户可以自定义的服务UUID,默认为FEE0。
易连物联网的AiLink APP交互使用的服务UUID为 FFE0。
同时,两个UUID都可以作为普通的数据交互UUID。
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
功能:APP与BLE进行设置类指令的UUID,有write和notify
说明:广播数据有两类,用户只能选择其中的一类进行设置。
第一类广播:AiLink设置(默认)。使用我司AILInk APP接入的设置,需根据我司要求的格式进行设置。
第二类广播:用户自定义设置。不使用我司AiLink APP接入的设置,用户可以根据自身需求进行设置。若不设置则默认为我司设置。
AiLink设置广播数据内容包含(详情设置请查看设置读取CID、PID、VID):
1、Company ID 。固定:496e(In,Inet缩写,此处预留后续申请SIG company号)
2、CID:产品类型(2bytes)(例如血压计为0x0001,额温枪为0x0002,祥查看协议透传产品介绍)
3、VID:厂商ID (2byte) (由我司分配)
4、PID:产品ID (2byte) (由厂商分配)
5、Mac地址(MAC是固定的,大小端序可设置,默认小端序)
例如广播出来的自定义数据为:
6e49000100010001126134231102
6e49:为In,0001是CID,表示产品类型,0001是VID,表示厂商ID,0001是PID,表示产品ID。
126134231102是Mac地址,因为是小端序,所以Mac地址是:02 :11 :23 :34 :61 :12
蓝牙工具显示如下图:
若使用此类广播自定义数据,则第一类的广播自定义数据不启动(CID、VID、PID等设置不启用)。详情设置请查看第二类广播自定义设置。
注:以下设置类指令请查看ailink通用透传应用手册。
ailink协议透传应用手册需要和ailink通用透传应用手册一起使用。
l 设置类指令(以下指令不透传)。
l 设置、读取 模块广播名称
l 设置、读取第二类自定义广播数据
l 设置、读取 广播间隔时间
l 设置、读取 连接间隔
l 设置、读取串口波特率
l 读取 MAC地址
l 读取 BM模块硬件\软件版本号
l 设置、读取 MCU设备版本号
l 设置、读取 模块主从模式
l 设置、读取 模块无连接模式自动休眠时间。
l 设置 模块进入睡眠模式
l 设置 唤醒模块
l 设置、读取 当前系统时间。
l 设置、读取CID、VID 、PID
l 设置 模块重启
l 设置 模块恢复出厂设置。
l 设置、获取模块状态
l 设置 MCU的电池状态
l 设置 读取MCU所支持的单位
l 设置、取消使能绑定
l MCU端设置蓝牙锁的开锁类型
l MCU上传设备基本信息
l APP同步时间到MCU
l master模式下设置、获取扫描的白名单
l master模式下设置、获取扫描识别的蓝牙名称
l master模式下设置、获取扫描状态(待完成)
l master模式下BM返回扫描到的广播厂商自定义数据
设置类指令格式规范(不透传):
Byte |
Value |
Description |
0 |
0xA6 |
包头 |
1 |
|
Payload长度(最大16byte) |
2 ~n |
|
Payload |
n+1 |
SUM(1~n) |
(1~n)校验和 |
n+2 |
0x6A |
包尾(注:n+2不能超过20) |
包头和包尾是固定的,分别为0xA6,和0x6A。
检验和是指byte1 + byte2 + …+byte n 的和,取低位1 byte。
设置指令里,数据的Byte数不能超过20
在传统的胎压接收器的基础上,加入BM模块并用以下指令协议,可以快速实现传统胎压接收器蓝牙化,并连接上AiLink中的胎压监测功能。
以下流程步骤,缺一不可。
1. BM模块上电。
2. BM模块返回状态信息。
3. MCU设置CID。
4. MCU上传自身支持的单位。
5. 申明前后轮胎压阀值是否一起设置。
6. MCU设置蓝牙其他参数,(可根据自身需求设置)。
8. APP主动读取胎压信息(MCU需回复)。
9. APP设置胎压阀值、温度阀值、语音报警。
10. MCU主动上传胎压信息。
11. MCU休眠。
MCU需要主动上报胎压的信息状态。
数据格式:
Byte |
Default |
Description |
||
0 |
0xA7 |
包头 |
||
1~2 |
0x000D |
产品类型: 0x000D |
||
3 |
0x0d |
Payload长度 |
||
4 |
0x01 |
Type:MCU上传胎压状态 |
Payload |
|
5 |
|
轮胎编号: 1:左前轮 2:右前轮 3:左后轮 4:右后轮 |
||
6 |
|
V:实际电压(单位:V) |
||
7 |
|
电压数据小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
8 |
|
P:压力值高位 |
||
9 |
|
P:压力值低位 |
||
10 |
|
压力值单位: 0:Kpa 1:Psi 2:Bar |
||
11 |
|
压力值小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
12 |
|
T:温度值高位 |
16bit有符号数, 数值带正负 例如:实际温度是:-10.2℃ 则T= -102=0xFF9A 小数点位=1 。 例如:实际温度是:10.2℃ 则T=102=0x0066 小数点位=1 。
|
|
13 |
|
T:温度值低位 |
||
14 |
|
温度值单位: 0:℃ 1:℉ |
||
15 |
|
温度值小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
16 |
|
S:状态 0 0x00:正常 0x01:漏气 0x02:充气 0x03:启动 0x04:上电 0x05:唤醒 0x06:丢失 |
||
17 |
SUM |
校验和 |
||
18 |
0x7A |
包尾 |
APP可选择不同的单位显示,同时会下发到MCU端进行同步。
数据格式:
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x81 |
Type:app下发单位设置 |
Payload |
5 |
|
压力值单位: 0:Kpa (默认) 1:Psi 2:Bar |
|
6 |
|
温度值单位: 0:℃ (默认) 1:℉ |
|
7 |
SUM(1~6) |
(1~6)校验和 |
|
8 |
0x7A |
包尾 |
MCU回复设置结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x82 |
Type:MCU回复单位设置结果 |
Payload |
5 |
|
结果: 0:设置成功 1:设置失败 2:不支持设置 |
|
6 |
SUM(1~5) |
(1~5)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x02 |
Type:app主动读取胎压信息 |
Payload |
5 |
|
轮胎编号: 1:左前轮 2:右前轮 3:左后轮 4:右后轮 |
|
6 |
SUM |
校验和 |
|
7 |
0x7A |
包尾 |
Ø 当APP主动读取胎压信息时,MCU要根据读取的编号,返回对应的编号信息状态。
数据格式:
Byte |
Default |
Description |
||
0 |
0xA7 |
包头 |
||
1~2 |
0x000D |
产品类型: 0x000D |
||
3 |
|
Payload长度 |
||
4 |
0x02 |
Type:MCU返回胎压状态 |
Payload |
|
5 |
|
轮胎编号: 1:左前轮 2:右前轮 3:左后轮 4:右后轮 |
||
6 |
|
V:实际电压(单位:V) |
||
7 |
|
电压数据小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
8 |
|
P:压力值高位 |
||
9 |
|
P:压力值低位 |
||
10 |
|
压力值单位: 0:Kpa 1:Psi 2:Bar |
||
11 |
|
压力值小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
12 |
|
T:温度值高位 |
16bit有符号数, 数值带正负 例如:实际温度是:-10.2℃ 则T= -102=0xFF9A 小数点位=1 。 例如:实际温度是:10.2℃ 则T=102=0x0066 小数点位=1 。
|
|
13 |
|
T:温度值低位 |
||
14 |
|
温度值单位: 0:℃ 1:℉ |
||
15 |
|
温度值小数点: 0:不带小数点 1:带1位小数点 2:带2位小数点 |
||
16 |
|
S:状态 0 0x00:正常 0x01:漏气 0x02:充气 0x03:启动 0x04:上电 0x05:唤醒 0x06:丢失 |
||
17 |
SUM |
校验和 |
||
18 |
0x7A |
包尾 |
MCU需要根据自身设备情况,在这里面阐明前后轮参数是否统一设置。以方便界面统一处理
MCU设置设备基本信息指令
Byte |
Value |
Description |
|
0 |
0xA6 |
包头 |
|
1 |
0x10 |
Payload 长度 |
|
2 |
0x35 |
Type:MCU上传设备的基本信息 |
Payload |
3 |
0x01 |
数据有效标志位 0x01 |
|
4 |
|
Value 1:一起设置 2:分开设定 |
|
5~17 |
|
0 |
|
18 |
Sum |
(1~n)校验和 |
|
19 |
0x6A |
包尾 |
(若前后轮使用同一种设置,则需要把前后轮参数设一致)。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x83 |
Type:app设置胎压阀值 |
Payload |
5~6 |
|
前轮上限阀值(大端序) |
|
7~8 |
|
前轮下限阀值(大端序) |
|
9~10 |
|
后轮上限阀值(大端序) |
|
11~12 |
|
后轮下限阀值(大端序) |
|
13 |
|
单位: 0:Kpa 1:Psi 2:Bar |
|
14 |
|
阀值数值小数点 0:不带小数点 1:带1位小数点 2:带2位小数点 |
|
15 |
SUM |
校验和 |
|
16 |
0x7A |
包尾 |
MCU回复设置结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x84 |
Type:MCU回复气压阀值结果 |
Payload |
5 |
|
结果: 0:设置成功 1:设置失败 2:不支持设置 |
|
6 |
SUM(1~5) |
(1~5)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x85 |
Type:app设置温度阀值 |
Payload |
5~6 |
|
温度上限阀值(大端序) 16bit有符号数, 数值带正负 例如:实际温度是:-10.2℃ 则T= -102=0xFF9A 小数点位=1 。 例如:实际温度是:10.2℃ 则T=102=0x0066 小数点位=1 。
|
|
7~8 |
|
温度下限阀值(大端序。预留,目前用不到,值为0000) 16bit有符号数, 数值带正负 例如:实际温度是:-10.2℃ 则T= -102=0xFF9A 小数点位=1 。 例如:实际温度是:10.2℃ 则T=102=0x0066 小数点位=1 。
|
|
9 |
|
温度值单位: 0:℃ 1:℉ |
|
10 |
|
阀值数值小数点 0:不带小数点 1:带1位小数点 2:带2位小数点 |
|
11 |
|
语音报警 0:关闭 1:打开 |
|
12 |
SUM |
校验和 |
|
13 |
0x7A |
包尾 |
MCU回复设置结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x86 |
Type:MCU回复温度阀值设置结果 |
Payload |
5 |
|
结果: 0:设置成功 1:设置失败 2:不支持设置 |
|
6 |
SUM(1~5) |
(1~5)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x87 |
Type:app设置温度阀值 |
Payload |
5 |
|
语音报警 0:关闭 1:打开 |
|
6 |
SUM |
校验和 |
|
7 |
0x7A |
包尾 |
MCU回复设置结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000D |
产品类型: 0x000D |
|
3 |
|
Payload长度 |
|
4 |
0x88 |
Type:MCU回复报警设置结果 |
Payload |
5 |
|
结果: 0:设置成功 1:设置失败 2:不支持设置 |
|
6 |
SUM(1~5) |
(1~5)校验和 |
|
7 |
0x7A |
包尾 |
深圳市易连物联网有限公司
地址:深圳市宝安区西乡街道银田工业区侨鸿盛文化创意园写字楼A栋五层502室
Tel: +(86)0755-81773367
Email:hw@elinkthings.com
Web: www.elinkthings.com
Copyright © 2020 深圳市易连物联网有限公司 All rights reserved.