蓝牙

连接外设代码流程:

1.建立中心角色(CBcentralManager)

2.中心设备蓝牙状态更新(centralManagerDidupdateState)

3.扫描外设(discover)

4.连接外设 (connect)

5.扫描外设中的服务和特征

6.获取外设的services

7.获取外设的services

7.1获取外设的特征,获取外设的特征值,获取特征的Descriptor和Descriptor

7.2与外设数据交互

7.3订阅特征的通知

8.断开连接

在物理层的基础上,提供两个或多个设备之间、和物理无关的逻辑传输通道(也称作逻辑链路)。

在BR/EDR系统中,与对端的Link Manager通过LMP协议(Link Manager Protocol)进行通信;在BLE系统中则使用的是LL协议(Link Layer Protocol)。

专业词汇:

PROFILE:

负责管理逻辑层提供的逻辑链路。基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。

L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写

理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。Profile是蓝牙协议的特有概念,为了实现不同平台下的不同设备的互联互通,蓝牙协议不止规定了核心规范(称作Bluetooth core),也为各种不同的应用场景,定义了各种Application规范,这些应用层规范称作蓝牙profile。

负责提供数据传输的物理通道(通常称为信道)。通常情况下,一个通信系统中存在几种不同类型的信道,如控制信道、数据信道、语音信道等等。

BLE中心模式流程

1.建立中心角色

2.扫描外设(Discover Peripheral)

3.连接外设(Connect Peripheral)

4.扫描外设中的服务和特征(Discover Services And Characteristics)

4.1 获取外设的services

4.2 获取外设的Characteristics,获取characteristics的值,,获取Characteristics的Descriptor和Descriptor的值

5.利用特征与外设做数据交互(Explore And Interact)

6.订阅Characteristic的通知

7.断开连接(Disconnect)

peripheral模式的流程

1.引入CoreBluetooth框架,初始化peripheralManager

2.设置peripheralManager中的内容

3.开启广播advertising

4.对central的操作进行响应

4.1 读characteristics请求

4.2 写characteristics请求

4.4 订阅和取消订阅characteristics

逻辑链路层:

定义包的结构和传输信道,完成设备的发现、连接流程,以及数据的收发流程。

链路层的有5个工作状态:等待状态、广播状态、扫描状态、初始化状态和连接状态。

从等待状态可以进入广播状态、初始化状态或扫描状态。

广播状态下的链路层会用广播信道进行包的广播并监听其他设备对包的响应。

扫描状态下的链路层会监听广播信道,从广播信道中接收广播的包。

初始化状态下的链路层会监听指定设备在广播信道中发送的包,用来初始化和该设备的连接。

从广播状态或者初始化状态可以进入连接状态。

连接状态的的进入,一个连接请求包是个标志。

对于初始化状态下的链路层,当发送连接请求包后就进入连接状态。

对于广播状态下的链路层,当接收到连接请求包就进入连接状态。

从广播状态进入连接状态的设备作为从设备,从初始化状态进入连接状态的设备作为主设备。

主设备和从设备进行通信时,由主设备把握通信时机。

一个从设备同一时间只和一个主设备进行通信。

在连接状态下的链路层只会使用数据信道进行包的传输。

每一个连接事件都需要确定一个信道编号,该编号的信道用于传输这个连接事件中发生的所有包。

每个连接事件至少包含一个来自主设备的包。

在一个连接事件当中,主从设备交替收发数据包。

当数据包进行传输时,连接事件被视为开启。

从设备每接收到一个来自主设备的包后都需要回复一个包。 

连接请求包中包括几个重要参数:connInterval、connSupervisionTimeOut、connSlaveLatency、whiteList。

connInterval参数是整数,表示连接事件的发生间隔,由于连接事件的发生间隔要求是1.25ms的倍数,因此实际表示的时间间隔为connInterval*1.25ms。

由于事件发生的间隔允许值为7.5ms到4.0s,因此connInterval参数的取值范围是5-80。

间隔越小,数据收发的机会越多;间隔越大,越省电。

connSupervisionTimeOut表示接收两个包的时间间隔的最大允许值,超过这个时间就认为数据丢失,传输中断。

connSlaveLatency表示当从设备监听的主设备连续发生连接事件时,从设备可忽略的事件数。

在没有数据传输的情况下,忽略连接事件可以节约电能。

有效范围是0到(connSupervisionTimeout/connInterval)-1,也就说可忽略的连接事件数要小于 超时时间内可以发生的连接事件数。

whiteList顾名思义白名单,链路层用来进行设备过滤。

主机对白名单进行设置,链路层对于被过滤调的设备进行的广播、扫描或者初始化都不会引起主机唤醒,可以节省电源。

后台运行任务要遵循的原则:

1.应用应该是基于会话的,并提供接口让用户决定 什么时候开始或停止蓝牙事件

2.应用被唤醒后,大约10秒钟的时间来完成任务,所以应该尽快完成任务并重新挂起。

2.app不应该使用被唤醒的机会来执行无关的事。

后台长时间执行:

1.关于服务与特征值的简述:

蓝牙的连接后如何传数据,

的缩写,中文是通用属性,是低功耗蓝牙设备之间进行通信的协议 generic Attributes

GATT Profile :

1.BLE建立在GATT协议之上,GATT 在蓝牙连接之上的收发短数据段(属性Attribute)的通用规范

GAP:

GAP全名是Generic Access Profile,通用访问配置文件,它定义了蓝牙设备的角色,中心和外设,并且控制他们的连接和广播数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容