win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈
[本文属原创,转载请附上原文出处链接。]
一、需要的软件工具
1、BLE协议栈(BLE-CC254x-1.4.0)
2、IAR开发软件(IAR Embedded Workbench8.20.2)
注:1.4.0协议栈使用8.20.2的iar版本,1.3.2协议栈等使用的是8.10.4的iar版本。
二、BLE协议栈安装目录下文件夹说明
Accessories 一些工具和已经编译好的Hex文件此文件夹中有Btool的安装包、USB-CDC的驱动附件;
Components Hal驱动,OSAL源码、协议栈通用源码此文件夹是OSAL各层组件的实现;
Documents 帮助文档协议栈说明文档,包括协议栈和DEMO的相关介绍和开发文档,这是学习BLE最好的资料;
Projects 工程文件这里有一些TI的Demo,我们开发一般是在Demo的基础上进行修改。
三、BLE协议栈工作流程
关于BLE协议栈工作流程图大概就是下面这个样子:
BLE协议栈分为主机和控制器两部分。主机部分包括:逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层、通用属性配置文件层;控制器部分包括:物理层,链路层、主机控制接口层。BLE协议栈的配置文件层包括GAP角色/安全配置文件、GATT配置文件两部分,处于协议栈的顶层,配置文件层将协议栈和应用层联系在一起。GAP层负责处理设备访问模式和连接,如广播的使能/禁止、广播的间隔、配对绑定及连接的控制、初始化安全管理。在成功连接设备后,可以调用对应的函数来获得设备的service(服务),并对service中的characterister(标签)进行读写。GATT层主要是用来数据通信,即service跟characterister。可以在设备的BLE协议栈中添加一个或多个service,而service(服务)中包含一个或多个characterister(标签)。BLE协议栈四种设备类型:Central主机、Peripheral从机、Observer观察者、Broadcaster广播者。主机和从机的通信过程大概是:从机开启广播,主机开始扫描,当从机接收到主机的扫描消息后,会向主机发送扫描回应数据。然后主机发起连接,建立通信。
四、消息广播
在完成一个处理事件后,需要把这个消息广播出去,就把值填加到广播数组中advertData[],调用GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );函数广播出去,这样还不能广播成功。进入GAPRole_SetParameter里面发现缺少GAP_UpdateAdvertisingData函数,需要修改动态广播数据,加入以下代码:
case GAPROLE_ADVERT_DATA:
if ( len <= B_MAX_ADV_LEN )
{
VOID osal_memset( gapRole_AdvertData,0, B_MAX_ADV_LEN );
VOID osal_memcpy( gapRole_AdvertData,pValue, len );
gapRole_AdvertDataLen = len;
GAP_UpdateAdvertisingData(gapRole_TaskID,
TRUE,gapRole_AdvertDataLen, gapRole_AdvertData );
}
else
{
ret = bleInvalidRange;
}
break;
在调用完GAPRole_SetParameter函数后可以广播了,需要控制任务调用时间控制后面添加osal_start_timerEx函数,这个是定时循环向任务发送事件消息,具体实际时间可以自己定。
GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
osal_start_timerEx(simpleBLEBroadcaster_TaskID,SBP_ADV_RGB_EVT,100);
return ( events ^SBP_ADV_RGB_EVT );
这样数据就可以广播了,采用PacketSniffer抓包就可以在AdvData看到广播数据了(十六进制数)。在使用某个功能时,必须在Option下配置C/Compiler Preprocessor添加宏定义来开启。比如使用串口时添加HAL_UART=TURE,注销POWER_SAVING。在使用ADC功能时,添加HAL_ADC=TRUE。
win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈相关推荐
- win7 蓝牙4.0 ble驱动_恩智浦发布行业领先的2x2 Wi-Fi 6 +蓝牙解决方案,彻底改变游戏、音频、工业和物联网市场...
原标题:恩智浦发布行业领先的2x2 Wi-Fi 6 +蓝牙解决方案,彻底改变游戏.音频.工业和物联网市场 恩智浦半导体(NXP Semiconductors N.V.)近日宣布推出2x2 Wi-Fi ...
- java 蓝牙4.0_《蓝牙4.0 BLE开发完全手册---物联网开发技术实战
图书目录: 第1章 蓝牙4.0 BLE简介 1.1 无线网络数据传输协议对比 1.2 短距离无线网络的分类 1.2.1 什么是蓝牙4.0 BLE 1.2.2 蓝牙4.0 BLE的特点 1.3 蓝牙4. ...
- 基于intel芯片的安卓蓝牙4.0 BLE通信总结
基于intel芯片的安卓蓝牙4.0 BLE通信问题总结 使用设备: 台电 x98 air 3G 系统:安卓4.4.4 系统搭建: 1.安装ADT驱动,可以搜索intel_mobile_usb_driv ...
- 针对蓝牙4.0 BLE通讯过程的逆向和攻击
本文讲的是针对蓝牙4.0 BLE通讯过程的逆向和攻击,从6个月前,我就开始针对BLE设备进行学习和研究,其中接触到了一些关于BLE逆向的博客和文章,但是相关内容都没有给出很好的方案.因此通过我的这篇文 ...
- iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发
1 前言 当前有越来越多的可穿戴设备使用了蓝牙4.0 BLE(Bluetooth Low Energy).对于iOS开发而言,Apple之前专门推出CoreBluetooth的Framework来支持 ...
- android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2
Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...
- 蓝牙4.0 BLE协议结构图详解
随着智能硬件的发展,嵌入式和物联网这类专业越发受到大家的追捧,而不管是学习嵌入式还是学习物联网,蓝牙4.0 BLE协议结构都是必须重点掌握的知识点,今天和大家分享的就只这部分内容,一起来看看吧. 第一 ...
- 博通二合一蓝牙android驱动,Broadcom 博通 蓝牙与无线网卡一体-蓝牙3.0版驱动 for xp...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ExcludeFromSelect=USB\VID_0A5C&PID_214C ExcludeFromSelect=USB\VID_0A5C&am ...
- 蓝牙4.0 BLE 防丢器
ViewTool 蓝牙4.0 BLE 防丢器 转载于:https://www.cnblogs.com/LittleTiger/p/6110220.html
最新文章
- Python3 MySQL 数据库连接 - PyMySQL 驱动
- JXJJOI2018_T2_tank
- python中字符串有什么组成_python字符串操作
- 神策数据赋能物流服务行业数字化转型
- 算法导论之python实现插入排序
- ui和ux的区别_UI和UX之间的区别
- 结构数据类型的用法 值类型 c# 1231
- Delphi多线程详解CreateThread、TThread,以及线程间通过临界区(CriticalSection)实现同步
- 从零开始写项目第八篇【将未完成的项目发布在Tomcat上】
- oracle11g 官网下载链接
- CDA I级学习 - CDA I级报名
- GSOAP 在一个客户端内调用多个服务出现的问题解决
- 2018年视频云服务市场格局进入整合阶段,阿里云视频云位居市场竞争力领导者的位置... 2
- Android基础| 1G-4G的介绍
- 4K字记一次血淋淋的MySQL崩溃修复案例
- CS5218 DP转HDMI 4K30HZ转换方案|DP++to HDMI(4k30)
- unity入门2.0
- 数据分区与放置策略解析_数据策略好数据与坏数据
- 计算机专业英语电池,电池分为哪几种?英文缩写?
- 计算机电脑关机后可以充电吗,电脑关机了还能充电吗