蓝牙4.0BLE中协议栈详解
蓝牙4.0BLE协议栈介绍
问题:什么是BLE协议栈?BLE协议栈与BLE协议的关系?
顾名思义,人类之间需要一种语言才能沟通,机器之间,电子之间也有一个标准,也就是作为通讯标准,也就是通讯协议。
协议:定义了一系列通讯标准,通讯双方都按照这一标准,进行数据通讯。
协议栈:协议的具体实现形式,实现的函数库,固件库。
把个个协议集合到了一起,以函数库的形式实现,并用这些给用户提供一些应用层的API接口,用户可以进行一些调度。
问题:如何使用BLE协议栈进行开发?
三个步骤:
1.不需要具体了解BLE协议栈的具体复杂的过程,只需要知道它的数据从哪里来,需要到哪里去就行了。
2.根据BLE协议栈调用它里面的函数,实现自己的一些功能。
3.可以自己编写一些函数,实现自己需要特定的功能。
协议结构图
第一层:physicallayer(物理层)
信道带宽提供2M,提供三个广播信道1M。
第二层:link layer(链路层)
执行一些基带协议,底层的数据包管理协议。
第三层:host controller interface(主机控制接口层)
提供主机与控制层的通讯方式,以及命令格式,重用蓝牙标准,比如一些串口,USB等等。
第四层:L2CAP(逻辑链路于适配器协议层)
为它上层提供数据业务,提供端到端的逻辑数据通信。
第五层:security manager(SM)安全管理层
层与层之间会有通信,它是建立数据交换安全方面的数据知识。
第六层:attribute protocol(ATT)通用接入层
定义了一些通用接口,供应用层和底层之间的调用,比如你要调底层的硬件模块的东西,就需要这个层的底层的驱动模块去实现它的一些功能,所以它会同时封装一些API的函数设置。
第七层:generic attribute profile(GATT)(属性协议层)
允许设备以属性的形式向外设备暴露它的一些数据,就像广播者与观察者之间,它一直在广播自己的属性,数据出去。观察者观察到了它以后就可以把它的属性提取出来。
第八层:generic access profile(GAP)通用属性剖面
具体属性协议的应用框架,应用了属性协议的应用架构,通过这个层,可以在里面开发一些应用的东西,这里做好了一些应用的框架,可以在上面写一些开发。