前文表述过,我对IOT WIFI解决方案更关心的是传输性能、易用性与扩展性,TI对CC3200特性的介绍显然超出我的预期,不错的性能(UPD 16Mbps、TCP 13Mbps),支持SmartConfig配网、RF自动校准以及丰富的外设接口都表明其作为IOT设备WIFI解决方案设计的勃勃雄心。下面仅针对CC3200-LAUNCHXL的TCP吞吐、SmartConfig配网以及与国密协处理器的扩展进行分析测试。
传输性能测试
拿到评估板后,测试性能的第一方案考虑的是以CC3200-LAUNCHXL作为AP,使用两个测试机连接评估版,然后使用Iperf工具进行TCP/UDP吞吐量测试。为此我准备了SurfacePro笔记本和一个具有无线网卡HP Pavilion台式机,然而部署测试环境的时候很失望,两者中只有一个能作为STA连接评估板。
查询资料方知,CC3200的AP模式仅能支持一个STA,主要目标是为了配置功能,现实实在骨感。无奈之下只能想其他方法来测试,在CC3200上开发一个测试工具以STA方式连接测试仪进行吞吐量测试可能是最精确的,不过这非短时间评估所能做到。在查看评估板的配置功能时,突然想到可以用WEB访问的方式测试传输性能,同时可以兼具WEB服务性能测试,这个测试可以使用单个终端完成,测试工具是curl-loader。测试拓扑如下示。
以curl进行HTTP协议访问的方式测试CC3200-LAUNCHXL,更准确的说测试的是评估版的静态WEB页面服务性能,只能定性的分析传输性能。测试时我设计了三个测试项目:
1. 最大性能测试,评估版放置在室内,距离测试主机5M;
2. 穿透能力测试,评估版放置于20米外,与测试主机之间有两道非承重墙;
3. 射频干扰测试,在测试二的基础上,增加四级静电放电干扰测试;实际上这个测试里,评估板是放在我们的EMC实验室中的:),而静电放电测试是我们能够找到的最方便的广谱干扰源。
测试工具部署于HP Pavilion台式机的Ubuntu 16.04中,下载curl-loader 0.56,make、install后需要编辑测试脚本,除了设定访问页面之外,还需设定合适的测试虚拟Client数量,这个数目取不发生ERR时的最大值即可。我的配置脚本是这样的:
########### GENERAL SECTION ################################
BATCH_NAME= cc3200
CLIENTS_NUM_MAX=6
CLIENTS_NUM_START=1
CLIENTS_RAMPUP_INC=1
INTERFACE =ens33
NETMASK=24
IP_ADDR_MIN= 192.168.1.3
IP_ADDR_MAX= 192.168.1.3 #Actually – this is for self-control
CYCLES_NUM= -1
URLS_NUM= 1
########### URL SECTION ####################################
URL=http://192.168.1.1
#URL=localhost/ACE-INSTALL.html
URL_SHORT_NAME="local-index"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 5000 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =20
执行sudo ./curl-loader -f ./conf-examples/cc3200.conf开始测试,每个测试运行100秒左右。
因为是WEB访问测试,其结果除了传输性能影响外,还受Cortex-M4内核的WEB协议处理能力影响。在TestCase1测试中,明显看出TX/RX双向流量不对称,这也是没办法的事。以TX流量来看,这个测试中CC3200-LAUNCHXL的TCP(HTTP)处理能力达到182763Bps,也即1.46Mbps,同时WEB请求CAPS达到47,这个结果也超出我的预期。
在TestCase2中,TX流量略有下降,此时应该达到障碍物穿透能力影响下的传输能力极值。
增加干扰后,TX流量进一步下降到170232Bps,也即1.36Mbps,同时没有ERR出现。干扰下传输性能仅下降约7%令我惊讶,这说明CC3200的射频抗干扰性能还是很不错的。当然也有可能是2Hz左右的静电放电干扰强度不够,也许还有3200的射频参数自动校准的加持。
SmartConfig配网测试
SmartConfig对于深入嵌入的WIFI设备具有重要意义,抛开协议的安全性不谈,仅仅依赖手机APP或者具备SmartConfig功能的AP就可以自动上网,这是许多智能家居设备的迫切需求。针对CC3200-LAUNCHXL的SmartConfig测试完全依照CC3200 SmartConfig Provisioning这篇Wiki文章进行。
测试的难度没有想象中复杂,在网上也有很多测试评估,唯一需要调整的是Wi-Fi Starter App的下载,wiki提供的连接已经失效,我使用的是从https://e2echina.ti.com/question_answer/wireless_connectivity/wifi/f/105/t/110503这个帖子中TI技术支持给出的附件下载。
安装App后,按照CC3200 SmartConfig Provisioning的步骤,验证CC3200-LAUNCHXL的SmartConfig支持比较轻松,看到评估板配置界面的时候就OK啦。
总结
经过测试评估,CC3200-LAUNCHXL作为3200 IC的评估套件是成功的,至少它的做工、射频性能,抗干扰性和易用性给我留下了深刻印象,测试时,也发现有一些自己关心的技术特性没有实现,也许是自己没时间深入测试的仓促结论,这包括:
1. AP模式仅支持一个STA,严重限制了IOT设备组网的灵活性;
2. 不支持IP v6协议栈;
3. 仅支持2.4G频段Wi-Fi,不支持5G 频段,不支持蓝牙,当然大多数的Wi-Fi IOT方案也少有支持5G双频,但同时支持蓝牙的双模无线解决方案已经有很多。
CC3200毕竟是几年前的产品,在合适的应用场景下其性价比应该不错。现在TI已经有了CC3220方案,支持IPv6和最多4个STA,至少弥补了前两项的不足,在应用起来,灵活性会比3200强很多。
gaoyang9992006:
测试装备厉害了。
Susan Yang:
谢谢分享!
非常详细的测评报告
user5086476:
回复 Susan Yang:
不错的分享,课件这可芯片的性能还是不错的。
user4399306:
回复 user5086476:
这个测评有方案,有数据,比较详细
user5101238:
测评很有说服力,能够使用虚拟机系统开发,采用数据证明CC3200-LAUNCHXL的wifi传输性能中障碍物穿透能力强,CC3200-LAUNCHXL的SmartConfig设置简单安全可靠,方便用户设置使用,测试评估比较详细。
user4824401:
测试工具很不错,测试过程很完美
weicheng li:
射频测试,passorfail 的条件是什么?
user3898112:
我觉得这是最有料的一篇测评文章!
user3787132:
测评有具体应用的场景,能够对实际应用有帮助。谢谢!
user5857397:
回复 user4399306:
是的