S2W-M02嵌入式WiFi串口WiFi联网过程协议详解

          目前,在嵌入式领域,智能家居、智能工业、智能公交等等控制中,WiFi已经成为了一种普遍被采用的技术。

          笔者常年在嵌入式WiFi行业做一线技术开发。本文主要从协议层面描述的是一个串口WiFi模块加电到联网过程中所经历的过程。

          本文以SimpleWiFiS2W-M02为例,通过Commviewforwifi抓包工具描述串口WiFi的联网过程:

第一步:设备上电,WiFi模块发起扫描过程:

           在此过程以前,通常已经将需要连接的无线路由器的名称(ssid)和密码已经通过其他方式设置到了模块里面。比方说S2W-M02首页-SimpleWiFi-淘宝网是通过web网页的方式或者AT指令的方式已经将ssid和密码设置到了模块中。模块上电后将发起扫描动作(探测请求数据帧)。通常这一过程在WiFi联网过程中称之为主动扫描(相对应的被动扫描请查阅相关文档)。

          探测请求帧(PROBE REQ)数据协议如下:

        

           通过上图红圈1中,我们可以清楚的看到。S2W-M02发起了一个类型(Type-0  subtype-4)为探测请求的数据帧。该数据即为模块的扫描请求数据帧。该帧目的地址为广播地址(如上图2中所示,FFFFFFFFFFFF,也就是说环境中所有的WiFi热点都会接收到该数据帧。从抓包数据中我们看出SimpleWiFi发起的探测请求帧中的含有设置过的热点的名称。这样可以减少热点发送的探测响应帧的数量。

            无线路由器在收到探测请求帧后,将对比自己的SSID。如果SSID与自己SSID相同,那么将回应探测相应帧给终端(S2W-M02)。如下图所示,思科无线路由器回应探测相应帧给SimpleWiFi模块。

         

          从上图,我可以看出。无线路由器给S2WM02模块(红色部分为数据的地址信息)。

第二步:模块收到路由器信息后,发起鉴权请求过程

          SimpleWiFi模块在收到路由器的探测相应数据后,将解析路由器的信息。包括路由器的capability信息。比方说HT信息域,此信息域代表无线路由器所支持的一些功能的信息。模块收到该信息后,设置相关的寄存器(比方说,信道、加密方式、支持的速率、11N的相关信息),以便来适应该无线路由器。

           设置参数后,S2W-M02模块将发起鉴权请求帧(具体数据帧格式见802.11协议)。该数据帧如下图所示:

          我们从上图可以看出:SimpleWiFi模块发起了鉴权数据帧给无线路由器(Type-0  Subtype-11),该数据帧含有鉴权的类型(open方式还是共享秘钥方式)。该数据帧是模块发给无线路由器的一个单播数据。

          路由器在收到鉴权请求数据的时候,将根据鉴权类型回应鉴权相应帧给终端(S2W-M02)。改数据帧中包含鉴权结果。如下图所示:

           

        上图1红圈处我可以看出数据类型,上图2红圈处我们可以看到数据发送方向(发起方为无线路由器,接收端为S2W-M02模块)。上图3红圈处代表鉴权结果。

       如果无线路由器采用的是WEP64或者WEP128的共享秘钥的加密方式的话,鉴权过程分为4步。这2种方式的加密,现在很少有人使用。可以参考802.11协议栈了解相关的信息,该文档就不做描述了。

       

第三步:鉴权成功后,模块发起关联过程

       SimpleWiFi模块收到成功的鉴权结果后。模块将发起关联Association过程。该过程主要是告诉无线路由器,模块所支持的一些功能信息(比方说采用的加密方式)。同时,在关联相应数据帧中,无线路由器也将通知模块关联结果等信息。关联相应帧中有很多信息与第一步中的探测响应帧一样,都是代表无线路由器所支持的功能。

       模块发起的关联请求数据帧,如下图所示:

        上图1红圈处我可以看出数据类型,上图2红圈处我们可以看到数据发送方向(发起方为SimpleWiFi模块,接收端为无线路由器)。该数据中包括模块的capability,以及将要使用的加密方式等等,详细的数据域可以参照802.11协议。

       无线路由器在接收到关联请求帧后,将根据自身的情况(是否支持该加密方式、是否支持模块的特殊功能)将生成关联相应帧,关联相应帧体中含有关联的结果。如下图所示:

       

       上图1红圈处我可以看出数据类型,上图2红圈处我们可以看到数据发送方向(发起方为无线路由器,接收端为SimpleWiFi模块)。上图3红圈处有关联的结果显示。

       至此,模块与无线路由器的802.11的鉴权和关联步骤已经完成。通过关联的结果,我们可以查看模块使用过程中的一些问题。比方说,路由器的加密方式不支持、以及模块和无线路由器是否支持QOS功能等。

       接下来,模块与无线路由器将进行秘钥协商阶段。不同的加密方式秘钥协商的过程有些区别。如果采用WPA或者WPA2相关的加密方式的话。我们从抓包过程可以看见EAPOL过程即我们通常所说的4步握手过程。秘钥协议分为单播秘钥协商和广播秘钥通告2个步骤。秘钥协商的具体过程,在本文档中我们就不做详细描述。具体可以参考802.11协议相关文档。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值