查看: 2544  |  回复: 0
基于单片机的WiFi透传设计

主题

回复
发表于2018-12-05 13:52:49 | 显示全部楼层
1# 电梯直达
简述
  本文主要描述产品中使用单片机控制器设备完成IoT Wi-Fi网络通讯的一些通讯设计要求,包含硬件连接,软件架构搭建,天线设计以及无线信号的测试方法。以便达到产品更好的软件架构以及射频性能。
  本文应用于单片机控制器通过Uart串口或者SPI接口连接,通过AT+指令集驱动Wi-Fi芯片或者模组,并通过控制指令来连接网络,App以及云端服务器。
  部分技术内容适用于RTL8710BX芯片,并以九九物联AFW121、AFW125系列模组适配用于举例。

  
  
  1.3 I/O端口状态
  正常通讯,为初始化的I/O处于不确定状态,如果MCU有与模块的I/O连接实现控制,需要对模块的该I/O有上/下拉,模块在系统关闭的时候,I/O为高阻态。
  1.4 Wi-Fi模块CHIP_EN引脚管理
  A、 悬空——无法硬件控制系统的启动或者关闭,模块可正常使用;
  B、 设备控制——输出低电平可控制模块电源系统关闭,正常工作时,必须保持输出给该引脚的电平为高;对此引脚的电平跳变时间≥100ms;
  1.5 天线匹配
  用户在前期设置PCB阶段,必须考虑到模块整体布局:
  模块板载天线(受设备环境影响大)模块天线部分露出板边,天线上端、左右两边必须做到5mm以上的净空区域,确保模块天线底部不能有金属物质
  外接底板天线(受设备空间限制)模块Pin2可衔接底板天线,底板天线与模块Pin2管脚的连接线尽量短,只要天线在底板上做好匹配,模块不需要考虑天线匹配
  IPEX外扣天线(天线增益和效率高)可选FPC软质天线,符合2.4G频段要求即可,
  1.6 功耗参数功能功耗时间参数
  配网功耗≥320mA2-3s
  Socket建立连接70mA2-3s
  通讯功耗80-120mA——
  长连接Tickliss睡眠模式5mA唤醒时间1 ms
  深度休眠功耗10uA唤醒时间2s
  1.7 固件升级
  模块提供两种升级:A、有线高速串口升级 B、无线OTA升级
  
  1.8 RSSI漫游处理
  模块具有AP漫游的功能,在存在多个同名和同密码的AP环境中,设备如果移动工作的话,模块会每几秒钟自动查询当前连接的热点的RSSI值。当RSSI低于指定的最低界限值时,模块会扫描当前环境下的同名AP信号,并选取信号值最高的进行重新连接,可以实现在保持当前socket连接不断开的情况下,无缝切换同名AP。因开启此功能之后模块在功耗上会有所增加,默认是关闭的,可以根据客户的需求进行开启,一般适用于大型商场移动式手持设备。
  2 工具软件2.1 配网兼容性
  模块配网分别受AP热点编码格式、网络环境、手机系统兼容性三个因素影响;
  ? AP(路由)编码格式影响(中文SSID):
  

  ? 网络环境:
  

  当下可以用手机产生热点,确认模块是否有故障
  ? 手机系统兼容:
  IOS可能由于版本升级,app软件需要同步升级。Android版本升级差异不大。
  2.2 AP热点加密方式
  通用的加密类型分别有:WEP、WPA、WPA2、WPA-PSK、WPA2-PSK
  WPA2-PSK的加密安全更加高,设置简单,对AP的兼容最普遍。
  2.3 网络信号强度以及分析工具
  用户在开发测试时,可能会出现一些不稳定情况,可以结合一些第三方工具,借助PC端无线网卡或者手机Wi-Fi;例如:inSSIDer、360概观;
  下面图片为inSSIDer.exe通过电脑网卡扫描周围环境的AP信息:
  
  
  2.4 软件功能逻辑测试
  ? 局域网环境下:
  A、 在与AP距离足够近情况下,测试整个软件工作流程;例如从上电到正常运行的逻辑场景
  B、 测试Socket连接后,大数据传输的压力测试
  C、 Socket连接压力测试,是否存在连续的建立失败
  ? 连接外网服务器:
  A、 服务器的稳定性
  B、 连接外网的AP稳定
  2.5 性能稳定测试事项
  ? 局域网环境下测试,PC端建立服务器
  ? 使用工具:
  软件NetAssist网络调试助手,PC端建立服务器
  串口助手软件可双向监控主设备和模块直接的通信流程
  Wireshark捉包软件,利用电脑无线网卡监控数据
  硬件串口工具USB转TTL
  3 MCU软件逻辑规划
  3.1 上电启动流程
  
  
  3.2 关于建立Socket连接问题
  
  
  3.3 关于指令的执行时间
  指令可分为:基础指令,Wi-Fi控制指令,网络查询指令,网络数据传输指令(TCP/UDP指令)、提示指令;
  每条指令都需要在最后带上“\r\n”,用户输入的指令结尾没有“\r\n”,模块会回显“ERROR\r\n”;详细指令的格式参数,请参考“AT+Command”;
  以下主要介绍一些指令的执行时间:
  指令类别AT指令执行时间特殊说明
  基础指令——10—50ms
  Wi-Fi控制指令AT+WLAPPARAM=《SSID》,《SEC》,[PSW]2—4s
  AT+WLSTAPARAM=《SSID》,《PSW》2—15s
  AT+WLCLOSE1—2s
  AT+WLSIMPLECONFIG——超时1分钟
  AT+AIRKISS——超时1分钟
  AT+WLAPCONFIG——1分钟退出
  TCP/IP指令AT+NWKCTCP3—18s
  AT+NWKCUDP
  网络查询指令————
  提示指令————
  3.4 关于低功耗Tickless
  Tickless mode—模块上电后即可操作指令进入,可在连接Wi-Fi和不连接Wi-Fi的情况下工作,进入该模式,模块会在每10s唤醒,在无任何操作响应情况下瞬间睡眠。
  表3为Tickless模式唤醒说明
  
  4 Wi-Fi性能压力测试4.1 关于Wi-Fi与云端通信协议
  Wi-Fi模块目前对接的云端可分两类:
  A、 公用云:亚马逊、阿里云、京东等等;对接该云端,模块端做好与该云的标准协议接口;如果存在数据协议对接,仅仅是MCU对云端的数据协议封包和解析;MCU端只需正常的操作AT指令集,封装好的数据帧通过Socket收发,最后各自解析。
  B、 私有云:机智云、深智云、或者用户自己搭建云平台等等;对接该云端,实现原理同上。
  4.2 AP连接压力测试
  
  说明:1、以上面的三个步骤为一个循环周期,进行至少200次周期以上的压力测试;
  2、由于连接AP的过程模块跟路由器的交互过程比较复杂,数据包接收和发送的次数比较多,依赖于路由器的配置及稳定性,网络状况是否良好,路由器负载和编码格式等因素,所以无法做到所有路由器的连接成功率都在百分之百。模块出厂前都会做路由器的兼容性测试,测试次数在1000次以上,在网络状况良好,连接路由器的设备在路由器的负载之内的情况下,能达到95%以上的成功率。如果测试出现连接AP成功率低90%的情况下,可以更换路由器或在网络状况良好的环境(信道不拥堵)下测试。
  4.3 Socket建链压力测试(TCP)
  
  说明:1、以上面的七个步骤为一个循环周期,进行至少200次周期以上的压力测试;每一条指令出现失败,都可以统计为一次
  2、在连上AP后并成功分配IP,服务器和网络状况畅通的情况下,建立TCP的成功率在99%以上。
  
  能否增加一个通讯速率,包含SPI最高通讯速率,完全透传设置,UART最高通讯速率,完全透传设计
  4.4 路由器兼容性以及测试方法
  路由兼容性测试方法是以不同品牌不同型号和不同配置的路由器为AP热点,进行网络性能压力测试。
  以下为部分路由测试分析报告,测试项目都是基于4.2、4.3的流程
  
  5 关于配网,成功率参数
  1. AP模式,airkiss,STA,BLE+WIFI配网差别,资源需求。
  ? AP模式配网需要配合九九物联的配网APP,配网成功率相对比较高,能达到98%以上。
  ? airkiss配网需要配合微信的airkiss功能,配网成功率在90%以上,部分手机可能存在兼容性问题。
  ? BLE+WIFI配网成功率跟AP配网一样,成功率比较高,但是需要有蓝牙模块的支持,设备如果同时有蓝牙模块可以选此方案。
  ? simpleconfig配网,配网成功率和原理跟arikiss一样,使用九九物联的配网app可以实现。
  2. 路由器兼容性同信道设置关系,隐藏ID以及不同国家设置
  路由器兼容性主要是路由器的编码格式和一些路由器的配置问题,MCU在给模块发送连接AP指令时,SSID和PASSWORD编码方式需要跟路由器一致。
  3. 出口国家信道设置关系
  信道的设置根据不同国家和地区的法制法规,开放的信道不一样,模块默认是国内的规格,如果需要出口到国外,需要告知我们,我们会 根据不同的地区设置不同的信道参数。
  6 掉线分析
  如果是长连接的TCP连接,连上服务器之后如果出现异常断开,MCU端可以重新发送指令建立连接。长连接的TCP连接由于网络堵塞和服务器等原因,有时候长时间不进行数据交流,会出现断开的情况,此时只需要重新连接即可,若一直连接不上,需要排查网络原因,可以将模块的log串口接到PC端,用串口软件记录模块输出的log信息,并保存下来提供给我们分析。

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部