低功耗蓝牙应用层处理的基本流程

记录在使用低功耗蓝牙协议栈时,进行蓝牙操作的基本流程。以指导搭建合适的应用层框架。

基本流程

第一步:由从机(peripheral)发起广播信息,主机central发起进行扫描处理;

第二步:主机扫描到从机的广播信息后,若需要更多信息,会发起扫描请求到指定的从机,从机堆扫描请求进行响应;

第三步:主机经过判断后,发现扫到的从机是自己想要的,就会对其发起连接请求。经过协议栈完成一系列的操作,使得两个设备连接;

第四步:若需要配对,则从机发起配对到主机,要求主机进行配对(比如,填入密码1234456啥的),经过协议栈处理,产生加密和认证的密钥。这样以后,你们之间的通信数据就是经过加密处理的了,可以防止被监听啥的,保证了安全性;

第五步:若需要绑定,则从机发起绑定请求,经过协议栈操作,二者完成绑定动作,会存储只有主从机才知道的密码啥的。这样以后,下一次连接的时候,就可以跳过配对过程(比如,就是就不需要主机填入123456这个秘密了),主机和从机下次开机时,可以直接跳过4-5步;

第六步:主机和从机进行数据通信;注:此过程中,绑定信息可能会更新,比如从机修改了某个特征的通知开关时,会触发绑定信息更新,下次连接后,通知会被默认启。

基本流程如下图[1]所示。

      

蓝牙应用程序程序框架设想

在应用层,可以考虑将蓝牙连接设计成一个状态机模型,可以包含空闲状态、扫描状态、广播状态、连接状态、配对状态、绑定状态,数据交互状态。

空闲状态:没有任何操作的状态,比如,协议栈刚启动时,两个设备的连接就处理空闲状态;

扫描状态:用来处理扫描操作,发起扫描、扫描设备过滤、扫描请求啥的;

广播状态:用来处理广播操作、发起广播、广播响应啥的;

连接状态:从主机发起连接到连接完成的阶段一些操作,例如连接成功后怎样,连接失败怎样啥的;

配对状态:从连接成功到配对完成的过程的一些操作;

绑定状态:处理绑定的一些操作;

数据交互状态:主机和从机完成连接和信任,进行数据交互处理。

参考文献

 [1]梅玲琪.高效可配的低功耗蓝牙协议栈软件设计[D].浙江大学,2016.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值