完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
每一对蓝牙设备的的通信都有一个连接的过程,而蓝牙4.0 与传统蓝牙的连接过程又有些不一样的,BLE4.0 的连接过程的先由从机(这里自然就是防丢器)先通过广播通道广播数据(advertising),主机(手机)监听广播通道,如果监听到有广播数据,则向其发送扫描请求(scan request),广播者接受到扫描请求后回复扫描响应(scan response)。流程如下图:
从机的广播关键有3点 1.广播的数据 2.扫描响应的数据 3.广播的时间间隙 回想一下FireBlue 开发板 烧录防丢器方案程序 上电后,需要向上拨动 joystick 才会开始广播,我们就从这里入手,找到按键处理函数,得到关键代码如下:
[color=rgb(247, 87, 51) !important]复制代码 F12 得到函数原型与参数注释如下
[color=rgb(247, 87, 51) !important]复制代码 第一个参数为广播的模式, 第二、第三为广播的数据的指针和长度。 第四、第五为扫描响应的数据指针和长度。 第六、第七为广播间隙的最小和最大值。 跟进app_gap_adv_start_req 得知,实质是TASK_APP 向 TASK_GAP 发送了一个GAP_SET_MODE_REQ 消息,消息携带了的参数为广播的内容。
[color=rgb(247, 87, 51) !important]复制代码 应用层与协议栈的交互是通过消息投递系统实现的,当TASK_GAP层完成设置广播参数的设定后会向TASK_APP,发送GAP_SET_MODE_REQ_CMP_EVT 消息,该消息的处理函数为:
[color=rgb(247, 87, 51) !important]复制代码 跟进该函数,函数根据任务当前状态做出相应的处理。 跟进app_set_adv_data(GAP_GEN_DISCOVERABLE) 从源码解析出来的函数功能为设置app_env.adv_data 即广播数据为发现模式和名字 跟进app_set_scan_rsp_data(app_get_local_service_flag())从源码解析出来的函数功能为设置app_env.scanrsp_data 即扫描响应数据为Profiles 的UUID 前面提到的 2个函数所组织的返回数据类型参考蓝牙标准规范v4.0,以下为从规格书截图, 所提供截图为广播、扫描响应数据格式 ,可以广播数据的内容,这里还得读者自己去查阅,理解得更为通透。 在两个广播事件之间有一个间隔,如下图 计算公式为:T_advEvent = advInterval + advDelay 其中: advInterval 应为0.625ms 的整倍数,并且在20ms~10.24s 之间 advDelay 是一个随机值 ,在 0~10ms 之间 这里的广播间隙会影响BLE 的功耗,如果时间间隙过小,会频繁广播,加大功耗,间隙过大,被发现的过程就会增大,这里还得按照需求适当调整。 最后我们用Light Blue 探测 广播的内容,均为所设置的 内容,包括了发现模式,设备名称,Profiles UUID。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
1026 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1599 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1197 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1697 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1363 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1654浏览 1评论
2080浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
887浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2554浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
893浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:14 , Processed in 0.663147 second(s), Total 55, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号