【经验】INGCHIPS BLE芯片如何获得最大吞吐量?
本文基于INGCHIPS开发板及SDK开发包介绍吞吐率测试。文章第一部分先公布结论,第二部分是1M PHY吞吐率的实测过程与理论分析,第三部分是2M PHY的实测数据,第四部分是实操部分,喜欢BLE的朋友可以按照此部分的说明自己动手进行测试。
一、结论
使用INGCHIPS SDK中测试吞吐率的例程peripheral_throughput和central_throughput,使用两个开发板进行测试。
1M phy吞吐率≥93KBps;
2M phy吞吐率≥152KBps。
二、1M PHY
1、实测
为了最小化包头、包尾、校验等无法避免的数据开销,每一包数据MTU设置为247。除去3bytes的ATT Header,则实际的ATT payload为244。在central端连接参数使用默认值的情况下:
对于1M phy来说,由主设备统计的吞吐率为:687104bps。
使用蓝盒(ellisys)抓包:
一包间隔为62.5ms(即50*1.25ms),观察其中的数据包发现,一个间隔有23包数据发出去。实际发出的有效数据=23x244bytes=23x244x8bits=44896bits。吞吐率=44896/0.0625=718336bps.比串口统计的略大,仔细观察Ellisys窗口,发现每个连接间隔发满时,都有一次retry。在连接间隔的末尾,从设备没有回复主设备连接包,主设备进行了一次重传。
也就是一个连接间隔实际只发了22包。
吞吐率=22x244x8/0.0625=687104,与串口的统计对应上了。
想要提升吞吐率,从上面的分析可以看到,有两个可以调整的地方,一个是每次重传的那一包,一个是连接间隔中空闲的6.116ms。
6.116ms足够传2包数据(具体传送一包的时长,参照下面的理论分析部分)。
调整连接间隔
.interval_min = 51,
.interval_max = 51,
可以看到,每个连接间隔变成了63.75ms,比刚才多传了一包,24包(由于依然有一个retry包,有效包23包),连接间隔中浪费的时间4.89ms,比刚才的6.116ms少,本次吞吐率理论上比上次高。
23x244x8/0.06375=704205
串口显示基本上两次718336,一次673440,(718336x2+673440)/3=703370,基本一致。参数设置为
每个连接间隔125ms,传输有效包48包。
48x244x8/0.125=749568bps=93696Bps≈93KBps,
此时连接间隔的空闲时间为4.447ms,
基本上已经达到极限。
2、理论分析
BLE连接数据包分解如下:
当ATT payload设置为244,传输一包数据需额外传输的bytes数为:
1(preamble)+4(access address)+2(LL Header)+4(L2CAP Header)+3(ATT Header)+3(CRC)=17(因为不加密,所以没有MIC)。
一包总的数据长度为17+244=261bytes=261x8bits=2088bits。
对于1Mphy来说,传输1bit时间为1μs,传输一包数据就需要2088μs,即2.088ms。
数据传输还有另外两个无法避免的时间开销:1)传输完一个数据包后,需要另一个设备回一个空包来保持数据传输;2)数据包之间需要有一个空闲时间来让协议栈完成数据处理,这个时间即T_IFS,150μs。
空包的长度为1(preamble)+4(Access Address)+2(PDU)+3(crc)=10Bytes=80bits。
也就是说传输一个空包时间为80μs,加上两个T_IFS,总共380μs。
也就是说,传输244Bytes数据,实际花费的总时间=2088μs+380μs=2468μs=2.468ms.如果可以保持不间断地发送,吞吐率=244/0.002468=98865Bytes≈98KBps。但是实际必然无法达到这个速度,就是由于上面说的,每一个连接间隔无法全部用于发送数据,即便让连接间隔是2.468ms的整数倍,协议栈也会留出一些空隙用于内部业务处理,对于Ingchips来说,这个间隙大约在4-6ms。因此实测的93KBps已接近理论吞吐量的极限。根据上面的分析,合理猜测如果把连接间隔无限拉长,可以最小化每个连接间隔空隙4-6ms的影响。但实际上,协议栈总需要时间来处理自己的事务,如果把连接间隔设的过长,且全部用于发送数据,协议栈就会在一定时间停止发送,且此连接间隔剩下的时间也不再用于发送数据,因此数据速率还会下降。
三、2M PHY
1、Ellisys抓包2M PHY方法
如下图所示,勾选2M PHY
2、实测
在连接间隔设为60,152kBps以上。
具体过程不再赘述。
四、实操
1、环境准备,硬件:
INGCHIPS开发板两套,可以咨询INGCHIPS代理商世强购买(上面的胶棒天线需要自备)。
Micro USB线两条。
软件:
INGCHIPS SDK,下载最新版本。
串口调试工具,比如SSCOM。
2、测试过程
说明:
关于INGCHIPS SDK的下载和安装、开发软件环境的配置、例程的编译和固件下载等具体问题,桃芯官网提供了丰富的由浅入深的开发资料,前期搭建环境过程中可以参照。
http://www.ingchips.cn/intro/25.html
https://ingchips.github.io/docs/application-notes/
过程中遇到问题也可以咨询桃芯科技的代理商或原厂支持。
SDK安装好后,在两块开发板分别下载SDK提供的专门用于吞吐量测试的主从例程。
连接主设备的串口,主设备上电会有打印,有相关调试指令的说明。
主设备扫描到从设备后,会自动进行连接。
之后发送测试指令(start m->s表示主设备发,从设备收),主设备的串口就会1秒钟发送一次实时吞吐率测试结果。
可以参照第二部分中,调整连接参数的配置,观察吞吐率的变化。如果有条件,也可以用Ellisys实时抓取连接过程,观察空中包的发送情况。注意:测试时把两套开发板放在靠近的位置上,保证二者有稳定的信号连接,信号不稳或者太差会影响吞吐率,信号强度对吞吐率的影响欢迎小伙伴们自行测试。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自桃芯科技公众号,原文标题为:INGCHIPS BLE芯片如何获得最大吞吐量,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】桃芯科技ING91881B蓝牙开发板基本操作介绍
桃芯科技支持蓝牙5.0、5.1的ING918X系列芯片,主要用于汽车,电网,医疗,定位,高端消费等泛工业场景。支持蓝牙5.3的ING916系列芯片覆盖消费场景,包括可穿戴,HID,ARVR,智能家居等等。本文介绍ING91881B开发板的一些基本操作。
【经验】桃芯科技提供网页版Log记录器可通过BLE蓝牙从空中抓取Trace数据
本文介绍如何通过BLE从空中抓取Trace数据。针对本文提供的参考实现,桃芯科技提供了网页版Log记录器。Trace对于分析协议栈流程问题非常重要。考虑到蓝牙设备的多样性,Trace数据的导出、记录由开发者在应用里实现。
【经验】如何利用BLE AoA寻向技术开发一个具有自动跟随功能的小车
目前市场上可见几种具备自动跟随功能的行李箱,多依靠视觉或者UWB技术实现。本文介绍如何利用BLE AoA寻向技术开发一个具有自动跟随功能的小车。这个小车能够跟随信标前进、转向、停止。
【视频】桃芯科技BLE+UWB+NFC三合一汽车钥匙,完美解决10厘米安全定位
型号- ING91871B,ING91881B,ING91682C,ING91870C,ING91680C,ING91880C,ING91888A,ING91870CQ
【应用】桃芯科技ING918X低功耗蓝牙SOC帮助客户实现智能烧烤探针实时温度上报需求,工温高达125℃
智能烧烤领域对BLE SOC的要求在于高温环境中的稳定性、低功耗等特性。桃芯科技ING918x系列芯片作为工规/车规级BLE SOC ,稳定工作温度高达125℃,并拥有优秀的功耗表现,完全可以cover客户应用。支持BLE5.0&BLE5.1全特性自研协议栈,集成了32位RISC MCU,16KB ROM,128KB RAM,512KB嵌入式eFlash和丰富的外设资源。
如何快速评估射频性能?
方法 1:使用蓝牙综测仪评估: 通过 ingWizard 主菜单 Test → Download BQB RF Test Binary 下载 BQB 测试程序; 将 HCI 串口连接到蓝牙综测仪进行自动测试。 串口参数:二线串口,无硬件流控; TX、RX 分别为 PIN 2、3; 波特率:115200; 数据位:8; 停止位:1; 校验:无; 方法 2:使用频谱仪评估 通过 ingWizard 主菜单 Test → Download BQB RF Test Binary 下载 BQB 测试程序; 通过 ingWizard 主菜单 Tools → More → BQB RF Test 打开测试工具; 通过 BQB RF Test 工具控制设备发送 CW 信号,使用频谱仪观察信号强度、频偏。 或者,自行开发程序,调用 gap_vendor_tx_continuous_wave API 发送 CW 信号,使用频谱仪观察信号强度、频偏。 方法 3:使用开发板做简易评估
桃芯科技ING9XX系列蓝牙SoC用在APPLE Findmy Network Accessory
桃芯科技的ING9XX系列BLE芯片成功通过苹果授权的第三方机构进行的各项合规性验证,该系列芯片已经全面兼容Find My network accessory的功能要求,可为第三方硬件产品提供高效快速寻找丢失物品的低功耗蓝牙应用方案。
桃芯科技欢迎您参加世界智能网联汽车大会,将携低功耗蓝牙车规级SoC芯片及汽车数字车钥匙解决方案参展
桃芯科技是一家致力于车规级,工规级通信芯片的Fabless芯片设计公司。现阶段主要研发基于自主蓝牙协议栈的低功耗BLE5.0、5.1、5.3、5.4 SoC芯片。同时,可提供基于自研BLE芯片的完整参考设计方案。
如何进行空中升级
这里 是空中固件升级(FOTA)的快速演示。 1)服务端:为蓝牙设备加入升级服务, ingWizard 可以在新建项目时自动添加 INGCHIPS FOTA 服务。 也可以自行设计 FOTA 服务。 2)客户端:对于 INGCHIPS FOTA 服务,提供以下使用不同语言开发的升级程序、工具: 桌面系统(Windows/MacOS/Linux): Web FOTA (JavaScript) 、 自行编译或下载 ING BLE (C#, Windows) 。 Android: Web FOTA (JavaScript)、 ING BLE (C#)、FOTA (Java/Kotlin)、 微信小程序 ING BLE、 iOS:ING BLE (JavaScript)、微信小程序 ING BLE、 ING918 芯片:参考 SDK 附带的 Central FOTA 示例 (C/Zig)。
【产品】采用QFN32封装的低功耗蓝牙5.3芯片ING91680C,支持AoA和AoD寻向定位
ING91680C是由桃芯科技最新推出的一款低功耗蓝牙5.3芯片。ING91680C集成了INGCHIPS内部的BLE5.3 IP,包括调制解调器,链路层控制器和主机。它还集成了高性能32位带DSP和FPU功能的RISC MCU, 512KB闪存,低功耗PMU,丰富的外设,高性能低功耗BLE射频收发器。发射器输出功率范围为-27dBm至+8dBm。
【产品】桃芯科技新推国产车规级低功耗SoC芯片ING91870CQ,支持定位,主频达48MHz
ING91870CQ是桃芯科技新发布的一款车规级低功耗SoC芯片。该芯片历经9个月的可靠性测试,最终获得AEC-Q100的测试认证。ING91870CQ是一款32pin,QFN32 4x4的封装的BLE5.1SoC。
桃芯科技(INGCHIPS)BLE芯片选型表
型号- ING91871B,ING91881B,ING91682C,ING91680C,ING91870C,ING91880C,ING91888A,ING91870CQ
【视频】桃芯BLE SoC电子价签完整解决方案:节点数高达3000个,平均工作电流10ua以内
型号- ING91871B,ING91881B,ING91682A,ING91680A,ING91870C,ING91880C,ING91888A
【经验】如何使用918xx蓝牙SoC芯片进行BLE 5.x测速
桃芯科技为客户提供易用的SDK,帮助客户便捷、高效地开发蓝牙产品。本文桃芯科技将要分享918xx蓝牙SoC芯片通过BLE 2M 物理层带来的 1.2M+ “实感”速率无疑可以为 BLE 开拓更多的应用场景:支持视频实时传输的智能门铃,低时延高保真耳机等等。
【视频】桃芯科技BLE SOC 工作温度-40~125℃,800us低延时,亚米级定位
型号- ING91871B,ING91881B,ING91682A,ING91660A,ING91870C,ING91880C,ING9188A,ING91870CQ
电子商城
现货市场
服务
可加工PCB板层数1~40,最小线宽/间距内层: 2.5/3mil (H/H OZ base copper);最小线宽/间距外层: 3/3mil (H/H OZ base copper);成品交货尺寸范围:10 * 10mm~570 * 1200mm。板厚范围:0.4mm-10mm。支持通孔板、HDI板、柔性板、刚柔结合板打样、小批量及批量生产。
最小起订量: 1 提交需求>
可加工线路板层数:1~10层;最小孔径:0.2mm;孔径公差范围:±0.076mm(±3mil),板尺寸:5mm×5mm~600mm×600mm;板厚:0.2mm±0.08mm~2.0±0.1mm。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论