蓝牙概述+nrf51822串口数据透传的程序

以上一个系列中的程序为基础进行分析,主要分析协议栈。这部分开源的部分主要是GATT和GAP。

1.蓝牙概述

蓝牙是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换,使用在电信、计算机、网络、和消费电子等多众多领域。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM频段(波段为2400–2483.5MHz)。传输速率为1Mbps。采用时分双工传输方案实现全双工传输。

2.蓝牙版本

直接放链接了。
http://bbs.mydigit.cn/read.php?tid=1942816

3.蓝牙4.0

蓝牙4.0将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术,与3.0版本相比最大的不同就是低功耗。 该技术拥有极低的运行和待机功耗,使用一粒纽扣电池甚至可连续工作数年之久。
BLE支持两种部署方式:双模式和单模式。双模式中既可以支持传统蓝牙,也支持BLE的设备。单模式则仅支持BLE设备。大部分双模式的BLE可以代替部分传统的蓝牙控制设备。
参考:https://baike.baidu.com/item/%E8%93%9D%E7%89%994.0/8440996?fr=aladdin

4.蓝牙架构

资料里抠出来的BLE4.0的分层架构图
蓝牙概述+nrf51822串口数据透传的程序_第1张图片
蓝牙概述+nrf51822串口数据透传的程序_第2张图片

4.1.控制层(Controller)

从下到上分别是物理层(PHY),数据链路层(LL)主机控制层(HCI)。这三层主要位于控制器中。
1.物理层:从信道中发送接收数据,使数据符合数据流的格式。
2.数据链路层:负责链路的管理和控制,包括创建,维护,释放等。
3.主机控制器:负责与数据无关的蓝牙系统的操作。例如询问蓝牙设备是否存在,连接蓝牙设备,或者让本地的蓝牙可以被其他设备发现或连接。为了执行响应的功能,HCI要求及通过基带的资源控制器访问传输媒介。同时,设备管理器还通过HCI命令控制本地设备的控制行为。

4.2.主协议层(Host)

在控制层上的主协议层包括逻辑链路控制和适配协议(L2CAP),应用程序和服务提供了基于信道的抽象:进行数据分片化和组装应用程序的数据,复用和反复用多通道共享一个逻辑链路。
除了L2CAP、主协议层包括安全管理协议(SMP)和属性协议(ATT)。
1.安全管理协议(SMP)使用固定L2CAP信道来实现设备之间安全功能。
2.属性协议(ATT)提供了一个在一个固定的L2CAP信道上传输少量数据的方法。用于确定其他设备的服务和其他设备的功能也使用属性协议。
3.通用属性(GATT)配置文件指定了配置文件数据交换的结构。该结构定义概要文件中使用的基本元素,如服务和特性。
4.通用访问配置文件(GAP)定义了蓝牙设备的基本要求

4.3.应用(APPs)

BLE的实际应用例子,包括电池,心跳速率,血压测量等
应用层上定义了三种规范:特征,服务和概述(characteristic, service, and profile)。每种规范都是建立在GAP上。GAP定义了特征和服务的属性,应用层则定义如何使用这些属性组。


最后前段时间需要用NRF51822做一个串口透传的功能,实现和单片机的通信。
放上代码:程序临时写的,没整理,看着有点乱。
https://github.com/awe15/NRF51822.git

你可能感兴趣的:(蓝牙概述+nrf51822串口数据透传的程序)