蓝牙协议栈 nrf51822开发中,蓝牙协议栈和应用开发是分开的. (1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支持(包含MITM和OOB配对): (2)应用部分和协议栈部分内存空间隔离: (3)采用异步事件驱动程序架构: (4)没用使用RTOS,可以方便移植到任何RTOS: (5)SoftDevice是使用标准的C语言编写的,它是已经被编译好的二进制文件,需要使用者将它烧写到芯片中. (6)API包含了Gen…
Android 4.3以后的系统自动支持蓝牙4.0规范的低功耗蓝牙(BLE).在android4.3之前,蓝牙4.0支持是由手机厂家加入支持的,接口各异,导致开发一个支持蓝牙4.0程序支持市面上的手机很困难.从android 4.3以后,系统将统一接口,使得支持大部分手机成为可能.所以与手机或平板联机之前要确认是android 4.3及以上的系统.有些旧手机,由于蓝牙硬件是支持BLE4.0,更新厂家的android4.3系统是可以支持的.iOS方面,IPHONE 4S及以上,The New IP…
为了省钱,也为了提高手动能力,只买了块核心板,仿真器用的是旧的jinkv7,自己搭扩展板,DIY就这样开始了. 买这块之前做了些调查,最终选定了nrf51822,功耗低,性能强,开发难度小,虽然比TI的贵一点,但cortex-m0毕竟不错,带256K flash,16K Ram,可以做很多应用开发. (1)2.4GHZ多协议无线射频 (2)32位ARM Cortex M0 处理器 (3)128位AES硬件加密处理器 (4)256kB flash / 16kB RAM (5)可编程外设接口PPI…
蓝牙是一种短距离的通讯方式,它设计的意图是取代电子便携设备之间的有线电缆连接.蓝牙的主要特性是健壮性.低功耗.成本低,它工作于免费的2.4无线传输频段. 蓝牙有两种技术系统:基本速率Basic Rate (BR)和低功耗 Low Energy (LE).这两种系统都包括了设备发现.建立连接和连接机制.BR系统包括了Enhanced Data Rate (EDR) Alternate Media Access Control (MAC) And Physical(AMP).BR系统支持面向有连接或…
相关下载:http://download.csdn.net/detail/xgbing/9565708 首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs\arm. 打开工程前需要下载蓝牙协议栈S110 nRF51822 SoftDevice(s110_nrf51822_6.0.0_softdevice.hex)到板子中,这个手册上有说明. 首先看的是main.c中的m…
代码实例:点击打开链接 实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据. int main(void) { // Initialize leds_init(); timers_init(); buttons_init(); uart_init(); ble_stack_init(); gap_params_init(); services_init(); advertising_init(); conn_params_init(); sec_param…
SDP的全称是Service Discovery Protocol,中文是服务发现协议.SDP(服务发现协议)是蓝牙协议体系中的核心协议,是蓝牙系统重要组成部分,是所有用户模式的基础.在蓝牙系统中.客户只有通过服务发现协议才能获得设备信息.服务信息及服务特征,才能在此基础上建立相互间的连接.通过这个协议,应用程序可以发现哪些服务可用以及服务的特性是什么. SDP服务器-客户端模型: 客户端通过发送SDP请求给服务器查询服务以及服务的属性. SERVICE RECORD包含了SDP Server的…
Battery Service是有关电池特性方面的服务,如果需要它,在初始化时将它加入到蓝牙协议栈. 如果通过ble_bas_battery_level_update(),电池电量将会通知,Battery Service将发送事件到应用程序. (1)Battery Service事件类型 /**@brief Battery Service event type. */ typedef enum { BLE_BAS_EVT_NOTIFICATION_ENABLED, /**< Battery va…
特性中的属性有两种:属性值或描述符. 支持通知或指示的特性中默认有一个描述符:客户端特性配置描述符(Client Characteristic Configuration Descriptor,CCCD).它的UUID是0x2902. 添加描述符的函数是: uint32_t sd_ble_gatts_descriptor_add ( uint16_t char_handle, ble_gatts_attr_t const *const p_attr, uint16_t *const p_hand…
The Generic Attribute Profile (GATT)使用属性定义一个服务框架,定义了服务和特性的过程和数据格式,包含发现.读取.写入.通知指示特性和配置特性广播. GATT配置文件设计用于应用程序和其它配置文件,客户端与服务器通讯时使用它.服务器包含了一系列的特性,GATT配置文件定义了怎么使用属性协议去发现.读取.写入.获得指示和配置特性广播. 配置文件包含了: (1)配置交换: (2)设备服务和特性发现: (3)写入一个特性值: (4)特性值通知: (5)特性值指示: G…
链路层定义设备处于状态机中五种状态的一种: (1)旁路状态: 处于此状态下的设备不发送或接收数据,处于其它状态下都可以转到此状态. (2)广告状态: 处于此状态的设备发送广播包或者监听.响应广播包.可由旁路状态进入广告状态. (3)扫描状态: 扫描状态监听广播信道上的处于广播状态发送的广播包.扫描状态也由旁路状态进入. (4)发起状态: 处于此状态监听广播信道上的广播包并响应初始化一个连接.它也由旁路状态进入. (5)连接状态. 由广播状态或发起状态进入. 任意时刻仅能处于五种状态中的一种,设备…
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释 演示样例源代码: https://github.com/junkchen/BleLib/tree/master/sample Android ble4.0开发基础篇:http://blog.csdn.net/kjunchen/article/details/50339549 BleLib是An…
1. 引言 上一篇文章<Windows 8.1 低功耗蓝牙开发>讲述了如何在Windows 8.1平台上创建低功耗蓝牙应用,并且以TI的Sensor Tag为例,给出了代码步骤和演示.其实当前很多低功耗蓝牙的应用场景是与用户的手机相连接,如TI的Sensor Tag官方就给出了Android和iOS的客户端应用(很遗憾没有Windows Phone版本的,不过现在大家可以去Store上下载个人开发者开发的Sensor Tag应用了,前段时间刚刚出现在美国区的市场了).再比如小米刚刚出的79块钱…
最近一段时间,因为产品的需要我做了一个基于低功耗蓝牙设备的Android应用,其中碰到了一些困难,使我深深体会到Android开发的难处:不同品牌,不同型号和不同版本之间的差异使得Android应用适配成为一个痛点,尤其是跟硬件相关的,每个厂商在实现Android API的时候,或多或少都会有些差别.这些区别,有些是明显的Bug,有些则是对API理解的差异造成的. 我的开发是基于Android 4.3+ 标准BLE API.Android 4.3之前厂商自己实现的API不在讨论之列.Androi…
基本概念和问题 1.蓝牙设计范式? 当手机通过扫描低功耗蓝牙设备并连接上后,手机与蓝牙设备构成了客户端-服务端架构.手机通过连接蓝牙设备,可以读取蓝牙设备上的信息.手机就是客户端,蓝牙设备是服务端. 手机做为客户端可以连接多个蓝牙设备,所以手机又可以叫中心设备(Central),蓝牙设备叫外围设备(Peripheral). 还有另外一个称谓:手机叫主设备(Master),蓝牙设备叫从设备(Slave). Android4.3 开始支持低功耗蓝牙,此版本只支持单模式:同时只能工作在中心设备模式或者…
段时间,公司项目用到了手机APP和蓝牙设备的通讯开发,这里也正好对低功耗蓝牙(蓝牙4.0及以后标准)的开发,做一个总结. 蓝牙技术联盟在2010年6月30号公布了蓝牙4.0标准,4.0标准在蓝牙3.0+HS标准的基础上增加了对低功耗蓝牙(BLE)的支持.相比原有的普通蓝牙和高速蓝牙,BLE最大的特点就是低功耗,低延时,快速的搜索和连接速度,但数据传输速度相比传统蓝牙低.接下去将从BLE的概念以及代码两个方面介绍Android下的BLE. 先来说说基本概念: 1.BLE相关概念 1.1 GATT.…
原文网址:http://blog.csdn.net/zhangjs0322/article/details/39048939 Android低功耗蓝牙应用程序开始时获取到的蓝牙血压计所有服务的UUID如下所示: 08-28 09:05:48.488: D/BluetoothGatt(4251): onGetService() - Device=08:7C:BE:21:D1:24 UUID=00001800-0000-1000-8000-00805f9b34fb 08-28 09:05:48.48…
低功耗蓝牙官方文档 本文章是参考官网,然后加入自己实践中的理解完成!没有看上一篇的读者,可以先阅读一下前一篇,这是一个系列. 官网地址:https://developer.android.com/guide/topics/connectivity/bluetooth-le Android 4.3 (API 18 )引入了低功耗蓝牙,应用可以查询周围设备.查询设备的服务.传输信息. 关键术语和概念 通用属性配置文件(GATT Generic Attribute Profile) GATT 配置文件…
物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探 唐朝实验室 · 2015/10/30 10:22 Author: FengGou 0x00 目录 0x00 目录 0x01 前言 0x02 BLE概述 BLE 协议栈总览 GAP-通用访问规范 GATT-通用属性协议 0x03 BLE嗅探 0x04 伪造BLE通信 0x05 分析BLE私有数据协议(灯泡.跳蛋.小米手环) 1.YeeLight 2 代蓝牙灯泡 2.小爱爱智能跳蛋(这个真不是我的,某个小伙伴借给我研究的) 3.小米手环 番外篇:小…
0×00 前言 低功耗蓝牙(Low Energy; LE),又视为Bluetooth Smart或蓝牙核心规格4.0版本.其特点具备节能.便于采用,是蓝牙技术专为物联网(Internet of Things; IOT)开发的技术版本. 类似文章推荐:永不消逝的电波(三):低功耗蓝牙(BLE)入门之如何调戏别人的小米手环. BLE主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的低功耗特点,因此普遍用于穿戴设备. 我们比较熟悉的网络有 Zigbee,WIF…
原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 [原创,多图] (只发布于csdn博客, 如需转载,请注明出处,谢谢! ) 蓝牙4.0的开发, 现在真热火的很, 但是很多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道如何抓包, 并且, 即使很多朋友到TI官网论坛去找信息,不少朋友依然是无功…
蓝牙4.0的开发, 现在真热火的很, 但是很多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道如何抓包, 并且, 即使很多朋友到TI官网论坛去找信息,不少朋友依然是无功而返,实际上, 用cc2540 usb-dongle来进行ble数据的抓包,并不像用电脑的wireshark等软件来抓取ip包一样简单. 我们需要明白的是,ble的广播是可以指定广播信道的,广播信道分别是37.38.39,但TI的协议栈官方例程里已经默认设置了在广播阶段 同时三个信道一起广播,但是一旦跟主机…
版权声明:本文为博主原创文章,转载请注明作者和出处.    作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播包进行分析.在学习BLE的时候,下面两个文档是极其重要的,这是SIG发布的蓝牙的核心协议和核心协议增补. 核心协议Core_v4.2. 核心协议增补CSS v6. 虽然这两个文档是蓝牙技术的根本,但是遗憾的是:通过这两个文档学习蓝牙并不是那么容易的,阅读和理解起来很费力.尤其是初学者在阅读这两个文档…
  坐落在北欧的挪威不像他的邻居芬兰那样,可以先后依靠NOKIA和愤怒的小鸟在世界科技界享有盛名.在一般人看来,挪威除了一个逐渐式微的Opera浏览器以外,并没有更多拿得出手的科技企业.而事实证明这只是你一厢情愿的想法. 在物联网热潮席卷全球的最近几年,有一家挪威公司凭借着在低功耗无线领域的数十年深厚积累,在物联网应用领域攻城拔寨,且获取了客户的一致好评.这家公司叫做Nordic半导体,而他们的主要产品就是物联网必不可少的低功耗无线方案. Nordic技术营销经理Pål Kastnes(左).N…
前言 在写这篇文章的时候,谷歌刚刚发布了Android Wear ,摩托罗拉也发布了 Moto 360 智能手表.Android Wear的API还是相当基本的,是很好的文档材料,而且还会不断的更新,所以我不打算写一个关于他们的教程(至少现在还没有).有趣的是 Moto 360 支持 Android 4.3及之后的版本.这明显是Bluetooth LE只有在Android 4.3及以后才被支持的原因,这也意味着 Moto 360 支持Bluetooth LE.Bluetooth LE 将不仅是可…
       蓝牙4.0BLE cc2540 cc2541 ios OAD课程(件) 为阿莫单片机论坛  www.AmoMcu.com 原创.仅仅公布于csdn博客, 如需转载,请注明出处,谢谢!   假设须要蓝牙4.0BLE开发开发板和资料, 请看这里 http://amomcu.taobao.com/ , 这里能提供基于cc2540或cc2541的蓝牙4.0BLE开发的具体硬件和软件资料, QQ群257318688, 阿莫单片机论坛  www.AmoMcu.com技术, 其他项目的例子很多介…
深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解蓝牙"连接"?如果蓝牙协议只有ATT没有GATT会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提.在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构. 如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协…
       蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现        尽管蓝牙4.0 BLE芯片CC2540 是单芯片(即用户能够对它进行芯片级代码编写), 是8051增强型主控. 带蓝牙4.0功能. 但非常多时候非常多客户都仅仅须要他的透传功能. 如今随着Android4.3 和IOS 的兴起, 支持蓝牙4.0BLE的手机越来越多.所以怎样实现手机控制CC2540的透传是一个非常有用的功能,有了这个功能, 我们能够用手机来连接CC2540通过串口来连接的设备…
版权声明:本文为博主原创文章,转载请注明作者和出处.    作者:强光手电[艾克姆科技-无线事业部] 1. 扫描请求和扫描响应 广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP. 扫描请求:由链路层处于扫描态的设备发送,链路层处于广播态的设备接收. 扫描响应:由链路层处于广播态的设备发送,链路层处于扫描态的设备接收. 处于扫描态的设备可以接收广播信道的报文,通过扫描可以侦听哪些设备正在广播.扫描分为主动扫描和被动扫描.主动扫描发送扫描请求给处于广播态的设备,并通过处于广播态的设备返回的…
蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法 [原创,多图] spm=a1z10.1.w4004-5319414070.11.ZdQnRC&id=38095054083"> (仅仅公布于csdn博客, 如需转载,请注明出处,谢谢! ) 蓝牙4.0的开发, 如今真热火的非常. 可是非常多朋友买了我们出品的cc2540 usb-dongle后, 都反馈说不知道怎样抓包, 而且. 即使非常多朋友到TI官网论坛去找信息,…