BLE蓝牙发送速率、BLE底层蓝牙分包机制、BLE底层蓝牙重发机制、BLE中的MTU、BLE中蓝牙连接后数据通道选择

1、BLE蓝牙发送速率

BLE的发送速率取决于多个因素,包括BLE的版本、连接参数和物理环境。

  1. BLE版本: BLE有多个版本,包括4.0、4.1、4.2和5.0。每个版本都引入了不同的特性和改进,其中一些可能影响传输速率。通常来说,较新的BLE版本支持更高的数据传输速率。

  2. 连接参数: BLE设备在连接时会协商连接参数,其中包括连接间隔、连接超时等。这些参数直接影响到数据传输速率。较短的连接间隔通常意味着更频繁的数据传输,从而提高了速率。

  3. 物理环境: 物理环境的影响也很大。例如,有可能存在无线信号干扰、距离远近、障碍物等因素,这些都可能影响BLE的性能和传输速率。

  4. 数据包长度: BLE设备在传输数据时会将数据分割成多个数据包。数据包的长度也会影响传输速率,因为较大的数据包可以在较短的时间内传输更多的数据。

举例:假设一包数据为256个字节,他理论多长时间可以传输过去?

其中主要考虑连接间隔(Connection Interval)和数据包长度(Packet Length)这两个关键参数。

在BLE中,连接间隔的取值范围通常在7.5毫秒到4秒之间,数据包长度可以在27字节到251字节之间选择。

假设连接间隔为20毫秒,数据包长度为256字节:

传输速率 = 数据包长度/连接间隔

传输速率 = 256 字节/0.02 秒 = 12800 字节/秒

理论上传输时间可以通过总数据量除以传输速率得到:

传输时间 = 总数据量/传输速率

传输时间=256 字节12800 字节/秒≈0.02 秒

 2、BLE底层蓝牙分包机制

BLE的底层蓝牙分包机制涉及到将数据包划分为不同的数据通道上的数据包。以下是 BLE底层蓝牙分包机制的一般步骤:

  1. 数据包准备: 待发送的数据被划分为适当大小的数据包,每个数据包包含特定数量的字节。BLE规范定义了数据包的最小和最大长度,通常在27字节到251字节之间。

  2. 数据包传输: 在连接事件的数据通道上,BLE设备可以传输数据包。数据包可以由两个主要类型的子包组成:首先是ADV(Advertise)和后续是DATA(Data)。ADV子包主要用于广播,而DATA子包用于数据传输。

  3. 数据包顺序: 在一个连接事件中,多个数据包按照特定的顺序传输。数据包的顺序在连接事件开始时由发送方确定,并且在连接事件中保持不变。

  4. ACK确认: 接收方会发送ACK(Acknowledgment)子包来确认已成功接收数据包。如果发送方收到了ACK,则知道数据包已成功传输,否则可能会进行重传。

  5. 数据包丢失和重传: 如果某个数据包在传输过程中丢失,发送方可以选择在后续的连接事件中重新传输该数据包。

 3、BLE底层蓝牙重发机制

  1. ACK确认: BLE使用ACK(Acknowledgment)机制来确认接收到的数据包。在发送方成功发送一个数据包后,接收方会返回一个ACK信号,表示数据包已经成功接收。如果发送方在一定时间内没有收到ACK,它会认为数据包丢失,然后尝试重新发送。

  2. 自动重传: 如果发送方在规定的时间内没有收到ACK确认,它将尝试自动重传相同的数据包。这样的机制确保了即使某个数据包在传输过程中丢失,发送方仍有机会通过重传来恢复丢失的数据。

  3. 连接事件和数据通道: BLE通信是基于连接事件和数据通道的。在每个连接事件内,数据传输会发生在数据通道上。如果某个数据包在一个连接事件中丢失,发送方可以选择在后续的连接事件中重新传输该数据包。

以下是一些与重发机制相关的连接参数:

  1. Connection Interval(连接间隔): 连接间隔是两次连接事件之间的时间间隔。较短的连接间隔意味着数据包可以更频繁地传输,但也可能增加能耗。如果连接间隔较短,数据包传输的频率可能较高,从而提高了数据传输的可靠性,因为在一个连接事件内可以更快地检测和处理丢失的数据包。

  2. Slave Latency(从机延迟): 从机延迟表示从机可以跳过的连接事件的数量。在从机延迟期间,从机可以进入低功耗状态。较小的从机延迟可能减少了连接的能耗,但较大的从机延迟可能导致数据包在连接事件中的较长时间内未被处理,从而增加了丢包的风险。

  3. Connection Timeout(连接超时): 连接超时是指连接事件之间的最大时间。如果在这个时间内没有成功传输数据,连接将被视为失败。较短的连接超时可以更快地检测连接问题,但同时可能会增加丢包的可能性。

4、BLE中的MTU

定义了在一个数据通道上一次能够传输的最大数据包大小。MTU的设置对于BLE通信的效率和性能具有影响。

  1. 协商过程: MTU的值是在连接建立时由BLE设备之间进行协商确定的。连接过程中,设备可以通过协商来确定支持的MTU大小。

  2. MTU大小: MTU的大小表示一个BLE设备能够在一个连接事件内发送或接收的最大字节数。较大的MTU通常可以提高数据传输的效率,因为更多的数据可以在一个数据包内传输。

  3. ATT协议: MTU是与ATT(Attribute Protocol)层密切相关的。ATT层用于在BLE设备之间传输数据。GATT(Generic Attribute Profile)是建立在ATT之上的,用于组织和描述BLE设备之间交换的数据。

  4. MTU Exchange Procedure(MTU交换过程): MTU的协商是通过MTU交换过程来实现的。在这个过程中,设备之间会交换它们支持的MTU大小,然后选择一个较小的值作为连接期间的MTU。

  5. 默认值: 如果没有进行MTU的显式协商,那么BLE设备可能会使用一个默认的MTU值。这个默认值通常是23字节,但具体取决于设备和实现。

  6. 影响性能: MTU的大小会直接影响到BLE设备之间的数据传输性能。在一些应用中,可以通过使用较大的MTU值来提高数据传输的效率,减少通信的开销。

5、 BLE中蓝牙连接后数据通道选择

  1. 通信协商: BLE中的数据通道选择是通过连接参数协商来确定的。在连接建立时,主机和从机会协商连接参数,其中包括通信频率(Channel Map)。通信频率是一个40位的二进制值,每一位对应一个数据通道,1表示使用,0表示不使用。通过这个协商过程,BLE设备会在连接建立后确定使用哪些数据通道进行通信。

  2. 通道选择算法: 通道选择算法用于确定哪些数据通道应该被使用。BLE设备通常采用哈希函数或伪随机算法来生成通信频率。这样可以确保设备之间在连接建立时选择相同的通信频率,从而在相同的数据通道上进行通信。

  3. 数据通道映射更新: 在连接的过程中,通信频率可能会发生变化。BLE设备可以通过L2CAP层(Logical Link Control and Adaptation Protocol)发送Channel Map Update请求来请求通信频率的更新。这样可以在运行时适应通信环境的变化。

  4. 信道质量: 通信频率的选择还可能受到当前通信环境的信道质量的影响。设备可以通过信道质量指示(Channel Quality Indicator,CQI)来了解信道的质量,并相应地选择合适的数据通道。

协商通信频率的过程通常包括以下步骤:

  1. 连接请求和响应: 主机向从机发送连接请求,从机响应连接请求。在这个过程中,双方可以交换一些基本的连接参数,包括通信频率。

  2. 通信频率的协商: 通信频率是通过连接参数协商来确定的。通常,设备会采用一种算法,比如哈希函数或伪随机算法,生成通信频率。协商的目的是确保连接时设备之间选择相同的通信频率。

  3. 连接参数更新: 在连接过程中,设备还可以通过L2CAP层(Logical Link Control and Adaptation Protocol)发送Channel Map Update请求,请求更新通信频率。这使得设备可以在连接的运行时动态地适应通信环境的变化。

你可能感兴趣的:(BLE&BLE,MESH,BLE,蓝牙,BLE底层)