首页 > 编程知识 正文

模型加速方法,怎么提高局域网传输速度

时间:2023-05-05 04:31:35 阅读:136766 作者:3687

蓝牙低功耗本身是因为它尽可能节省电池电力。 因此,采样间歇发送和接收机制每次传输的数据量非常小,对于ATT来说,典型的是20字节。 后续版本的数据量在增加,但设备制造商有不同的实现方式,设备具体支持多长的数据传输,APP应用层需要兼容,这增加了正文主要是ble 4.0版上的数据传输

正常情况下,BLE的传输数据量非常小,实时温度监测、智能穿戴设备的心率、计步器上传等,有时几百毫秒甚至几秒十几秒一次就能发送用户数据,设备固件的空中上传这需要BLE设备提供能够在不同的APP应用场景中使用不同速率模式的能力。 幸运的是,BLE已经考虑到了这一点。 规格提供了动态调整BLE主从机速度模式的完善机制。 其中以下几个参数是最重要的,称为连接参数(connection params )

国际最小

国际最大

延迟

Timeout

通过ble sniffer工具接收到的主从站之间的连接参数更新的实际交互来说明该过程。

根据从设备(可穿戴设备)需要传输大量数据的情况下,可以向主机发出调整连接参数的请求分组,在请求分组中携带从设备希望的连接参数信息。

这是一个L2CAP数据包,S-M方向表示从站将发送到主机。 SIG _ connection _ param _ update _ req字段显示从站希望的连接参数范围

interval min=0x 10---- 16x 1.25 ms=20 ms

interval max=0x 14---20=20x 1.25 ms=25 ms

slavelatency=0

time out multiplier=0x 14-- 20=20x 10ms=200 ms

然后,主设备在收到从设备的请求参数后,根据自己的实际能力确定是否同意从设备的请求,如果同意,主设备在从设备给定的参数范围内选择适合自己的参数,同时连接参数

此数据包位于LL层,可以看到主机同意并设置了更新

interval=0x18 -- 24x1.25=30ms

latency=0

timeout=0x14 -- 20*10ms=200ms

然后,主机在L2CAP级别对从站的SIG _ connection _ param _ update _ req更新请求做出响应,表示主机是否同意从站的请求。

在此,您可以看到SIG _ connection _ param _ update _ RSP字段result成功,为0。

除了可以通过减少连接事件之间的间隔来提高速率外,还有其他方法。 我们知道BLE的axdxb有两种写入方式: writeWithResponse和writeWithoutResponse。 顾名思义,一个向从站写入数据需要等待下一次发送,直到从站响应,不需要另一个。

writeWithResponse需要响应的写入:

writeWithoutResponse无需响应的写入:

比较两种方式的协议分析可知,writeWithResponse方式在从机发送ATT_Write_Req后,必须等待从机从ATT_Write_Rsp应答才能发送下一个数据包此间隔有三个数据包,包括ATT_Write_Rsp

本文论述了提高BLE发送数据的两种方式,通过实际抓取数据包,给出了这两种方式的实际数据交换流程。 注意,如果以主机端APP应用层writeWithoutResponse方法继续发送,则主机的发送队列可能已满,APP应用层数据可能无法完全到达发送队列,从而导致丢包。 实际上正在开发的ios系统发现,如果连续写入64帧(每帧20字节)以上的数据,则后续的数据帧将丢失。 因为可以推测出IOs ble发送队列的大小应该为1KB,所以为了解决这个问题,主机需要一定的机制,且,发送和接收的上层APP应用层基于业务逻辑将从ble协议栈提交的数据保持一定的完整性

以上只是实际开发过程中的一点体会和记录,有些术语可能表达不准确,希望大家能有一些借鉴。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。