wifi一键配网smartconfig原理及应用
版權聲明:本文為博主原創文章,未經博主允許不得轉載。?http://blog.csdn.net/flyingcys/article/details/49283273
智能家居/家電現階段還處于普及階段,由于家庭wifi網絡的普及,目前普遍采用wifi與路由器完成連接,與手機/云端進行數據交互.
智能硬件,如智能插座,智能空調,智能空氣凈化器由于不具備人機交互界面,不能像電腦一樣的搜索/選擇指定路由器,輸入連接密碼的界面,所以必須先解決正確連接路由問題;
目前流行的wifi配置模式一般有以下2種:
1:智能硬件處于AP模式,手機用于station模式,手機連接智能插座的AP后組成局域網,手機發送需要連接路由的SSID及密碼至智能插座,智能硬件主動去連接指定路由后,完成連接
2:一鍵配置(smartconfig)模式:智能硬件處于混雜模式下,監聽網絡中的所有報文;手機APP將SSID和密碼編碼到UDP報文中,通過廣播包或組播報發送,智能硬件接收到UDP報文后解碼,得到正確的SSID和密碼,然后主動連接指定SSID的路由,完成連接
以上兩種方式都可以達到讓智能硬件連接至指定路由的效果,但是AP模式需要手動切換手機wifi連接的網絡,先連接智能硬件的AP網絡,配置完成后再恢復連接正常wifi網絡.有一定的復雜性;
但是smartconfig由于路由器品牌及手機品牌眾多,存在一定的兼容性問題,所以目前一般廠家仍保留AP模式,作為smartconfig失敗后的備用配網方案;
下面重點講解一下一鍵配置模式原理及應用;當前主流IOT的wifi方案有:
? | 廠商 | 芯片方案 | 技術名稱 | 發包方式 |
1 | TI? | CC3200 | SmartConfig | 往某一固定IP發udp包 |
2 | 高通 | QCA4004/QCA4002 | SmartConnection | ? |
3 | 聯發科MTK | MTK7681 | SmartConnection | 組播地址編碼 |
4 | MARVELL | MC200+8801/MW300 | EasyConnect | 組播地址編碼 |
5 | Reltek | AMEBA | SimpleConfig | 組播地址編碼 |
6 | 樂鑫 | Esp8266 | SmartConfig | 組播,通過長度編碼 |
7 | 新案線 | NL6621 | SmartConfig | 組播地址編碼 |
8 | 微信 | ? | AirKiss | 全網廣播,通過長度編碼 |
?
這個功能最早是TI提出并應用于CC3200上;不過從原理上講,只要芯片驅動支持開啟混雜模式(WiFi?Promiscuous),就可以支持一鍵配網功能,只是各個廠家叫法及實現編碼方式不同而已;
手機編碼發送采用有UDP組播或廣播,不同的發送方式和編碼,對應的解碼過程也不一樣.,當前測試發現,微信是通過UDP廣播包實現的;TI是通過往一固定IP地址發送udp包;其他芯片廠家提供的一般為UDP組播方式;
由于無線數據傳播必定是廣播的,所以必然可以被監聽到;如果AP沒有加密的話,UDP直接可以把相關的信息發送出來.但是路由器AP一般都是加密的,而且加密方式不固定.wifi模塊在無法直接解析出數據包
我們通過分析802.11的MAC幀格式,可以知道,鏈路層載荷數據(即網絡層的頭部及網絡層數)在數據幀中是清晰可見的,只要接到到802.11幀就可以立刻提取出載荷數據.
常見兩種數據幀格式:
Station?to?AP
?
AP?to?Station
?
?
DA:目標MAC地址
SA:源MAC地址
LENGTH:表示后面數據的長度
LLC:表示LLC頭
SNAP:表示3byte的廠商代碼和2byte的協議類型表示
DATA:載荷數據
FCS:幀檢驗序列
發送端:可以采用2種不同的編碼發送方式UDP廣播和組播;
一:UDP廣播:小規模測試后,發現當前只有微信的AirKiss采用了全網廣播模式,為啥微信會采用廣播模式,原因未知;TI采用的是固定IP地址的UDP數據包,原理和微信基本一致;
從802.11幀格式分析中獲知,無線信號監聽方的角度來說,不管無線信道有沒有加密,DA、SA、LENGTH?、LLC、SNAP、FCS字段總是暴露的,因此信號監聽方可以從這6個字段獲取有效信息.從發送方講,由于操作系統的限制,如果采用廣播只剩下LENGTH發送方可通過改變其所需要發送數據包的長度進行控制.所以只要指定出一套利用長度編碼的通訊協議,就可利用數據包的Lenght字段進行數據傳遞;
?
二:UDP組播:
組播地址是保留的D類地址從224.0.0.0-239.255.255.255
IP地址與MAC地址映射關系為:將MAC地址的前25位設定為01.00.5e,而MAC地址的后23位對應IP地址的位;
故發送端可以將數據編碼在組播ip的后23bit中,通過組播包發送,接收端進行解碼即可;
?
接收端進入一鍵配置功能后,wifi智能硬件從信道1開始監聽路由上的數據,如當前監聽信道有符合規則的數據包,就停止信道切換,停留在當前信道接收完全部數據.否則就依次切換至信道2.3.4....直到信道14后又從信道1開始繼續監聽依次循環;
當然,wifi智能硬件可以在開啟混雜模式之前,先行掃描當前環境下存在的AP獲取所有當前AP的信道,然后只對當前掃描到的信道進行依次監聽,如當前環境下只存在2個路由,分別在1.6信道,只需輪流掃描channel1和channel6,這樣可以提高配置效率
總結
以上是生活随笔為你收集整理的wifi一键配网smartconfig原理及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIFI 一键配置原理-ESP8266
- 下一篇: 广播和地址