当前位置: 代码迷 >> 综合 >> BREDR FLOW STOP介绍
  详细解决方案

BREDR FLOW STOP介绍

热度:39   发布时间:2023-12-12 00:30:24.0

FLOW

蓝牙中的FLOW Control主要由3个部分内容,分别时Packet Header FLOW,Payload Header FLOW以及L2CAP的Flow Control Mode。这里简单介绍一下前两种。

Packet Header FLOW

 

The FLOW bit is used for flow control of packets over the ACL logical transport.
When the RX buffer for the ACL logical transport in the recipient is full, a STOP
indication (FLOW=0) shall be returned to stop the other device from
transmitting data temporarily. The STOP signal only affects ACL packets.
Packets including only link control information (ID, POLL, and NULL packets),
SCO packets or eSCO packets can still be received. When the RX buffer can
accept data, a GO indication (FLOW=1) shall be returned. When no packet is
received, or the received header is in error, a GO shall be assumed implicitly.In
this case, the slave can receive a new packet with CRC although its RX buffer
is still not emptied. The slave shall then return a NAK in response to this packet
even if the packet passed the CRC check

        Packet Head FLOW字段作用ACL逻辑传输层,即包含ACL-U和ACL-C等逻辑链路。当接收到对方的Packet Header FLOW为STOP时,停止发送ACL数据,如果接收设备是Master则使用POLL来代替ACL数据,如果是Slave就使用NULL包来替换ACL数据,当接收到对方的Packet Header FLOW为GO时,开始正常发送ACL数据。一般当设备的RX Buffer不足时会将FLOW设置为STOP,当设备RX Buffer足够后将FLOW设置为GO。FLOW STOP是单向的,即仅接收到该字段的设备停止发送ACL数据。当没有接收到包或着接收到包的HEC错误,则认为FLOW为GO。

 

Payload Header FLOW

 

The payload header specifies the logical link (2-bit LLID
indication), controls the flow on the logical channels (1-bit FLOW indication),
and has a payload length indicator (5 bits and 10 bits for 1-byte and 2-byte
payload headers, respectively).
 

The flow indicator in the payload is used to control the flow at the L2CAP
level. It is used to control the flow per logical link. FLOW=1 means flow-on
(GO) and FLOW=0 means flow-off (STOP).

Payload Header FLOW与Packet Header FLOW的作用类似,也是用于通知对方设备停止发送数据。但是作用的域不一样,Payload Header FLOW字段仅作用与逻辑信道层(这里我的理解其实就是指逻辑链路层ACL-U)。注意ACL-C的数据FLOW字段在发送端应一直为GO,接收端则忽略该字段。

 

Transport Architecture

 

 

  相关解决方案