Link Manager Protocol Specification(4.1)

4 Procedure Rules

4.1 Connection Control

4.1.1 Connection Establishment

在paging过程以后,LMP要查询clock offset,LMP版本, 支持的features,name request and/or detach


当已page的设备想建立一个LM以上层的连接时,可以发送LMP_host_connection_req,当另一端收到这个PDU时,会将这个incoming connection通知到host。远端可以通过发送LMP_accepted或者LMP_not_accepted来接收或者拒绝这个连接。或者,如果slave需要role switch, 在它收到LMP_host_connection_req后需要发出LMP_slot_offsetLMP_switch_req。如果role switch失败,LM可以继续进行连接,除非由于limited resources导致不支持这个连接,这时可以发送LMP_detach带error code Remote Device Terminated Connection due to Low Resources(0x14)来结束连接。如果role switch成功,原来的slave需要发送LMP_accepted或者LMP_not_accepted来回复LMP_host_connection_req,注意此时的TID为0.


如果paging设备收到了LMP_not_accepted作为对LMP_host_connection_req的回复,那么它会立即断开链路,见4.1.2节。
如果LMP_host_connection_req被接收,那么LMP的安全机制可能将被触发,主要有pairing, authentication, encryption。如果一个设备不打算触发安全机制,那么它将发送LMP_setup_complete。如果双方设备都已发送LMP_setup_complete,那么ACL-U逻辑链路就建立成功。

4.1.2 Detach

两个蓝牙设备之间的连接可以由master和slave任一一方任意时间发起断开,命令包含一个断开原因的error code.



连接发起者LM可以暂停ACL-U链路上的传输。
后面讲了讲断开后的时序情况,以及LT_ADDR断开后可以重用。



在air log中也可以看到只有1条

4.1.3 Power Control

如果接收到的信号特征与之前预期值相差太大,就会去增大或降低远端设备的传输功率。设备的传输功率是它的物理链路特性,会影响到基于这个物理链路上的所有逻辑链路。请求设备的默认ACL-C上的功率控制只会影响它相关的物理链路,而不会影响连接到别的slave上的物理链路的功率等级。
有两种功率控制机制:传统功率控制与增强型功率控制,都会在后续4.3节详细描述。支持增强型功率控制的设备必须也支持传统功率控制。


在设备page以后LM支持的feature回复之前的任意时刻,都可以用传统功率控制机制发出功率调节请求。在LM支持的feature回复之后,如果双方都支持增强型功率控制,那么只有增强型功率控制可用,否则,如果任一设备支持传统功率控制,就只能用传统功率控制了。
如果设备的feature mask显示它不支持power control requests,那么在LM已经回复feature以后,它将不能发送功率控制请求。在此之前,功率调节可以发送,接收者如果不支持功率控制的话,可以用LMP_max_power来回复LMP_incr_power_req,用LMP_min_power来回复LMP_decr_power_req。或者回复带error code Unsupported LMP Feature(0x1A)LMP_not_accepted
一旦接收到LMP_incr_power_req或者LMP_decr_power_req后,输出功率将增大或者减小一步,具体步长见radio部分协议。

如果接收LMP_incr_power_req的设备已经在最大功率,那么回复LMP_max_power。发送者只有在发送降低功率至少一次后才可再发送增加功率。如果接收LMP_decr_power_req的设备已经在最小功率,那么回复LMP_min_power。发送者只有在发送增加功率至少一次后才可再发送减少功率。


LMP_incr/decr_power_req中有一字节留待后用,值为0可忽略。
后面具体讲了增强型功率控制,用的上再看吧。。

4.1.4 Adaptive Frequency Hopping

AFH是用来优化物理链路性能的,减少ISM band上其他设备的物理链路带来的干扰。AFH只在连接模式下可用。


LMP_set_AFH包含3个参数:AFH_Instant, AFH_ModeAFH_Channel_MapAFH_Instant用来表示哪个hopset即将启用,由蓝牙时钟值来控制,对两端都适用。
。。。

4.1.5 Channel Classification

master可以像支持AFH的slave查询信道分类信息。
支持AFH_classification_slave feature的slave可以进行信道分类,并根据它的AFH_reporting_mode来上报。master必须用LMP_channel_classification_req来控制AFH_reporting_mode, 然后slave通过LMP_channel_classification来上报信道分类信息。
slave按对上报多个信道信息,分类有good, bad, unknown。如果一对信道的一个是good一个是unknown,那么上报good。如果一个bad一个unknown,那么就是bad。一个good一个bad的情况自定义。


LMP_channel_classification_req有3个参数:AFH_Reporting_Mode, AFH_Min_IntervalAFH_Max_Interval。在AFH_reporting_disabled模式下,slave是不能产生信道分类报告的。AFH_Min_Interval定义了从两个LMP_channel_classification报告之间的最小时间。AFH_Max_Interval定义了slave去检测radio environment的变化产生LMP_channel_classification报告的最大时间。AFH_Max_Interval必须大于等于AFH_Min_Interval
AFH_Reporting_Mode决定slave是在AFH_reporting_disabled模式还是在AFH_reporting_enabled模式,默认值是AFH_reporting_disabled模式。
以下情况AFH_Reporting_Mode会自动切换到AFH_reporting_disabled模式:

  • 在baseband层建立连接
  • master-slave role switch
  • 进入park模式
  • 进入hold模式
    以下情况AFH_Reporting_Mode会自动恢复到之前模式:
  • 从park模式退出
  • 从hold模式退出
  • master-slave role switch失败

4.1.5.1 Channel classification reportin enabling and disabling

master通过发送LMP_channel_classification_req,把AFH_Reporting_Mode置为AFH_reporting_enabled模式来启动信道分类报告。
当slave的信道分类被master启动后,它会根据前一次LMP_channel_classification_req的参数来发送LMP_channel_classification PDU。如果slave的信道信息没有变化,那么无需发送LMP_channel_classification PDU。
master通过发送LMP_channel_classification_req,把AFH_Reporting_Mode置为AFH_reporting_disabled模式来关闭信道分类报告。


4.1.6 Link Supervision

每个物理链路都有一个时钟来进行监督。这个时钟会检测设备移出区域或者被干扰而block造成的物理链路link loss,设备掉电,或者其他的失败情况。



4.1.7 Channel Quality Driven Data Rate Change(CQDDR)

一个给定类型的包的throughput取决于RF信道质量。接收方的信道质量检测机制可以动态的控制远端传输来的包的类型从而优化throughput。设备A发送LMP_auto_rate来提示设备B启用该feature。一旦启动,设备B会发送LMP_preferred_rate来提出希望A发送的数据类型。如果期望的数据大小大于最大值,A也还是按最大值发送。
参数有期望的Basic Rate模式和增强数据模式。如果是Basic Rate模式,设备用bits 0-2来表示期望数据速率,如果是增强数据模式,则用bits 3-6来表示。如果设备支持增强数据模式,那么期望的速率值对Basic Rate和增强型模式都有效。
连接建立完成后任何时候都可以发送这些PDU。

4.1.8 Quality of Service(QoS)

4.1.9 Paging Scheme Parameters

LMP提供了用于协商下次设备paging时的参数的机制。


4.1.9.1 Page Mode

设备A发起的后续 设备A对设备B的page 过程的协商。设备A的发起包含了page过程的参数,设备B可以接收或则拒绝。如果拒绝那么保持旧的设置。对于一个想切换至保留page机制的请求必须被拒绝。


4.1.9.2 Page Scan Mode

设备A发起的后续 设备B对设备A的page 过程的协商。设备A的发起包含了page过程的参数,设备B可以接收或则拒绝。如果拒绝那么保持旧的设置。说明强制机制的请求必须接收,说明非强制机制的请求必须拒绝。当设备A改变了它的page机制时必须发起这个协商。当连接建立后,slave也必须发送这个信息给master来告诉master slave现在的page机制与设置。



4.1.10 Control of Multi-slot Packets

一个设备在ACL-U逻辑链路上持续的包的个数是可以被限制的。它并不影响eSCO链路上的传输。一个设备通过LMP_max_slot来告诉远端设备可接受的最大包个数。每个设备也可以通过LMP_max_slot_req来让远端按最大包数来传输,最大包数在参数中。建立新的连接后,默认值是1 slot。只要连接完成,任意时刻都可以发送这些PDU。


4.1.11 Enhanced Data Rate

4.1.12 Encapsulated LMP PDUs

当载荷超过16字节时可以发送聚合的LMP PDU。聚合LMP PDU最小有2个LMP消息,一个PDU头,更多载荷。


4.1.13 Ping

当两端设备都支持Ping feature时,LM可以通过LMP ping机制来确认远端的LM状态。LMP ping机制也可以通过要求远端设备必须发送带MIC的ACL包来确认ACL逻辑链路上的消息完整性。由于LMP_ping_res包含MIC会更新包计数器,LMP_PING_req的发送者可以与上次收到的计数器值进行对比从而确认是否有包被拦截。
不论是master或者slave都可以发起这个过程。

4.1.14 Piconet Clock Adjustment

master可以调节整个piconet的时钟

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

推荐阅读更多精彩内容

  • 1 Introduction LMP是在2端设备的LM之间通信的,它的消息是通过ACL-C逻辑链路上传输的。LMP...
    lucca_x阅读 1,877评论 0 0
  • 4.4.1 Slot Offset 利用LMP_slot_offset,发送关于不同微微网中的时隙边界之间的差异的...
    公子小水阅读 7,145评论 0 3
  • 第一章 概述 一、协议定义 为网络中互相通信的对等实体间进行数据交换二建立的规则、标准或约定,保证实体在计算机网络...
    丿曰阅读 13,877评论 0 6
  • 蓝牙 蓝牙的波段为2400-2483.5MHz(包括防护频带)。这是全球范围内无需取得执照(但定不是无管制的)的工...
    苏永茂阅读 6,143评论 0 11
  • 自从读书离开了外婆家,到镇上赶集仿佛就离我远去了。长大之后,一线城市最花哨的购物中心也很习以为常,以至于小时候每逢...
    _温渡_阅读 662评论 2 50