当前位置: 首页 > 编程笔记 >

蓝牙链接层

尚恩
2023-03-14
本文向大家介绍蓝牙链接层,包括了蓝牙链接层的使用技巧和注意事项,需要的朋友参考一下

蓝牙链路层概述了蓝牙设备可以使用无线电层提供的原始传输功能来交换信息的方式。链接层的功能非常接近OSI模型的MAC(中等访问控制)子层。

下图显示了链路层在蓝牙协议体系结构中的位置-

蓝牙链路层的功能

  • 定义发现蓝牙设备的过程。

  • 在正在通信的蓝牙设备之间建立逻辑链接。一台设备被指定为主设备,另一台被指定为从设备。

  • 广播要发送的数据。在整个数据通信中管理设备之间的链接。

  • 通过将无线电层的原始比特流转换为帧并定义密钥格式来发送数据。

  • 考虑到无线传输的挑战,例如干扰,噪声和深衰减。

蓝牙链路层中的协议

链路层中有两个主要协议,即链路管理器协议(LMP)和逻辑链路控制与适配协议(L2CAP)。

  • 链接管理器协议(LMP):LMP在蓝牙设备之间建立逻辑链接,并维护用于启用通信的链接。LMP的其他主要功能是设备身份验证,消息加密和数据包大小协商。

  • 逻辑链路控制和适配协议(L2CAP)L2CAP在上层帧和基带层帧格式之间提供适配。L2CAP为面向连接的服务和无连接的服务提供支持。

工作负责人

蓝牙设备分为主设备和从设备。在最简单的方法中,时分复用用于主从通信。定义为625 µs的时隙,主机开始在奇数时隙中发送,而从机开始在偶数时隙中发送。帧的长度可以是1、3或5个插槽。每个帧与访问码和标头的126位开销以及250微秒/跳的设置时间相关。

LMP通过配对方法建立链接。当主机生成一个密码并且两个设备显示相同的密码时,使用安全的简单痛苦方法。用户确认密钥以配对设备。

配对后,LMP将建立链接。使用的两种类型的链接是-

  • 面向同步连接(SCO):此处,在每个方向上分配一个固定的插槽。它用于实时数据。

  • 异步无连接(ACL):在此,通信是尽力而为的。它用于数据包交换数据,该数据以不定期的间隔可用。

 类似资料:
  • 连接设备 接口说明 用于连接 扫描出来的蓝牙设备。 参数说明 字段 类型 必须? 说明 device RKBLEDevice 是 蓝牙设备 示例代码 Swift: RokidMobileSDK.binder.connect(device: RKBLEDevice) Objc: [RokidMobileSDK.binder connect:device]; 断开设备 接口说明 用于断开已经连接的

  • 连接蓝牙设备 接口说明 接口需传入蓝牙名称(蓝牙address重启后会变) 参数说明 字段 类型 必须? 说明 name String 是 设备名称 举个大栗子 RokidMobileSDK.binder.connectBT(name, new IBTConnectCallBack() { @Override public void onConnectSucceed(BTDevic

  • jd.closeBluetoothAdapter(Object object) 关闭蓝牙模块。调用该方法将断开所有已建立的连接并释放系统资源。建议在使用蓝牙流程后,与 jd.openBluetoothAdapter 成对调用。 参数 Object object 属性 类型 默认值 必填 说明 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败

  • 蓝牙模块能够使你的作品与 Makeblock 蓝牙适配器 或支持蓝牙4.0的设备建立无线连接,使你能够无线地控制你的作品。 蓝牙的连接设置参看:通过蓝牙连接设备 蓝牙的灯效及含义 闪烁:蓝牙未被连接 常亮:蓝牙已连接,工作正常 灭:断电或故障 参数 尺寸:24×24mm 推荐使用距离:10m以内 蓝牙版本:BT4.0 频带范围:2402~2480MHz 天线增益:1.5dBi 能耗等级:≤4dBm

  • 蓝牙模块能够使你的作品与 Makeblock 蓝牙适配器 或支持蓝牙4.0的设备建立无线连接,使你能够无线地控制你的作品。 蓝牙的连接设置参看:通过蓝牙连接设备 蓝牙的灯效及含义 闪烁:蓝牙未被连接 常亮:蓝牙已连接,工作正常 灭:断电或故障 参数 尺寸:24×24mm 推荐使用距离:10m以内 蓝牙版本:BT4.0 频带范围:2402~2480MHz 天线增益:1.5dBi 能耗等级:≤4dBm

  • 1.1.1. btflinger 1.1.2. 以下为相关的接口: 1.1.1. btflinger btflinger是RokidOS提供的蓝牙服务 1.1.2. 以下为相关的接口: int bluetooth_rokid_open(char *name);//打开蓝牙 int bluetooth_rokid_close(void);//关闭蓝牙 int bluetooth_rokid_us