低功耗蓝牙4.0BLE编程-nrf51822开发(4)
蓝牙是一种短距离的通讯方式,它设计的意图是取代电子便携设备之间的有线电缆连接。蓝牙的主要特性是健壮性、低功耗、成本低,它工作于免费的2.4无线传输频段。
蓝牙有两种技术系统:基本速率Basic Rate (BR)和低功耗 Low Energy (LE)。这两种系统都包括了设备发现、建立连接和连接机制。BR系统包括了Enhanced Data Rate (EDR) Alternate Media Access Control (MAC) And Physical(AMP)。BR系统支持面向有连接或无连接的通讯:721.2 kbps的基本速率,增强速率2.1 Mbps,如果在802.11 AMP下可达24 Mbps的高速速率。LE相比BR/EDR具有低成本、低功耗、低复杂度的特点,它被设计用于一些传输速率低对功耗要求高的产品。一个蓝牙系统可支持一种或两种都支持。
介于主机和硬件之间的是HCI接口(Host Controller Interface)。像图中描述的那样,硬件可能包含多个执行单元:
BLE采用跳频技术增加抗干扰性,同时支持1Mbps的空中传输速率。BLE采用了两种多路访问方案:Frequency division multiple access (FDMA) 和 time division multiple access (TDMA)。FDMA使用2MHz的频率分开40个通道:3个广告通道和37个数据通道。TDMA技术在指定的时间内传输一个数据包。不同的物理通道被划分为事件,在这些事件中,BLE数据包被传送。有两种事件:广告事件和连接事件。发送广告数据包的叫广告发起者(advertisers),在广告通道接收广告数据包但没意向连接广告发起设备的叫扫描者( scanners)。
在事件的开始,advertisers发送一个广告包。在第二个通道Scanner有回应,紧接着advertisers发送一个回应包。在下一个事件的开始,又从第一个通道开始。
LE设备可能在整个通讯中使用单向或广播通讯,也可能使用广告事件在两个或多个设备之间建立成对的双向数据通讯。
需要连接到另一个设备的设备叫做 initiators,它监听可连接的广告数据包。如果advertiser正在使用一个可连接的广告事件, initiator在收到连接数据包的物理通道上发起一个连接请求,如果advertiser接受这个连接请求则这个广告事件结束,并且开始一个新的连接事件。一旦连接建立,initiator成为主设备,advertiser成为从设备。连接事件被用于在主从设备之间传输数据包。在连接事件之间,跳频技术被使用。
低功耗蓝牙4.0BLE编程-nrf51822开发(4)的更多相关文章
- 低功耗蓝牙4.0BLE编程-nrf51822开发(3)
蓝牙协议栈 nrf51822开发中,蓝牙协议栈和应用开发是分开的. (1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(9)
Android 4.3以后的系统自动支持蓝牙4.0规范的低功耗蓝牙(BLE).在android4.3之前,蓝牙4.0支持是由手机厂家加入支持的,接口各异,导致开发一个支持蓝牙4.0程序支持市面上的手机 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(1)
为了省钱,也为了提高手动能力,只买了块核心板,仿真器用的是旧的jinkv7,自己搭扩展板,DIY就这样开始了. 买这块之前做了些调查,最终选定了nrf51822,功耗低,性能强,开发难度小,虽然比TI ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(2)
相关下载:http://download.csdn.net/detail/xgbing/9565708 首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\N ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(11)-蓝牙串口代码分析
代码实例:点击打开链接 实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据. int main(void) { // Initialize leds_init( ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(7)-SDP服务发现协议
SDP的全称是Service Discovery Protocol,中文是服务发现协议.SDP(服务发现协议)是蓝牙协议体系中的核心协议,是蓝牙系统重要组成部分,是所有用户模式的基础.在蓝牙系统中.客 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(6)-Battery Service
Battery Service是有关电池特性方面的服务,如果需要它,在初始化时将它加入到蓝牙协议栈. 如果通过ble_bas_battery_level_update(),电池电量将会通知,Batte ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(10)-描述符
特性中的属性有两种:属性值或描述符. 支持通知或指示的特性中默认有一个描述符:客户端特性配置描述符(Client Characteristic Configuration Descriptor,CCC ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(8)-GATT
The Generic Attribute Profile (GATT)使用属性定义一个服务框架,定义了服务和特性的过程和数据格式,包含发现.读取.写入.通知指示特性和配置特性广播. GATT配置文件 ...
随机推荐
- Hark的数据结构与算法练习之臭皮匠排序
算法说明 个人感觉是没有意义的算法,只是用来作为学术研究.或者说开拓一下思维. 从wikipedia copy来的一句解释的话:Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序.在<算 ...
- loadrunner数据库MySQL参数化列表乱码问题
问题现象: 解决方法: 1.配置mysql ODBC数据源里面的编码格式: 2.配置lr创建数据库连接: 3.再次查看:
- Encoding
Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following ...
- ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)
题目大概说一个核反应堆的冷却系统有n个结点,有m条单向的管子连接它们,管子内流量有上下界的要求,问能否使液体在整个系统中循环流动. 本质上就是求一个无源汇流量有上下界的容量网络的可行流,因为无源汇的容 ...
- 如何:从代码创建 UML 类图(ZZ)
您拖动的一个或多个类将显示在关系图上. 它们依赖的类将显示在"UML 模型资源管理器"中. 参见 模型表示类型的方式. 将程序代码中的类添加到 UML 模型 打开一个 C# 项 ...
- ural 1431. Diplomas
1431. Diplomas Time limit: 1.0 secondMemory limit: 64 MB It might be interesting for you to learn th ...
- Bitset[HDU2051]
Bitset Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 三角形[HDU2039]
三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- BZOJ4289 : PA2012 Tax
一个直观的想法是把每条边拆成两条有向边,同时每条有向边是新图中的一个点.对于两条边a->b与b->c,两点之间连有向边,费用为两条边费用的最大值.然后新建源点S与汇点T,由S向所有起点为1 ...
- FlyCapture2 Qt5 MinGW Configuration
Install FlyCatprue2 to the folder "C:\PointGreyResearch\" Add the following to the .pro fi ...