xiaofei558008 发表于 2014-12-21 20:19

WiFi模块调试心得

WiFi 模块的单片机开发一直以来都在开发单片机,最近有智能家居的案子需要开发用到WiFi模块,于是刚刚上手RAK411;经过半年时间的了解/学习,总结如下:一、概念:1)、Wi-Fi:大部分单片机工程师的理解就是手机/笔记本上面和家里路由器的这些东西叫WiFi,但是具体到物联网等相关行业的时候也经常遇到;这里我说一下我理解的WiFi概念;按照我的理解是基于2.4G(当然也有5G频段的WiFi)自由无线频段的无线通信方式,简单的理解就是一种跑在2.4G无线上面的协议叫WiFi;分层理解就是:硬件层的2.4G收发器,和软件层的WiFi协议组成了WiFi;具体WiFi协议很复杂,据说是类似于3G网络的那种协议,只是简化了;2)、AP:热点,类似于3G网络的基站,家里的路由器就是AP,手机也可以开AP,我们在WiFi列表里面收到的就是AP的SSID,即:WiFi AP的名字;3)、STA:Station的缩写,站点的意思,就是你可以找到附近环境里面的可见的AP,但是STA之间是不可见的,STA与STA通信需要通过AP才可以的;这类似于手机,手机之间打电话当然需要基站来传递啦;4)、TCP/IP:这个是互联网基础的协议,IP就是地址,全球唯一,TCP是网络协议,同样还有UDP,这两者有区别,但是我没有太仔细研究下去,UDP是发送后不管应答,TCP是有应答的,因此TCP更可靠;5)、MAC地址:就是WiFi本身有个物理地址,48bit,类似于网卡的MAC地址;信号强度:dB;就功率的单位,具体怎么理解/换算后面再撰写更详细**研究;6)、信道:就是2.4G不是刚刚好的2.4G,有一个频率范围,这个范围叫做带宽,这个带宽里又分成好多信道,每个信道又占用一定宽度带宽;好比说是:比如深南大道宽200米,有双向8车道,这样就有每个车道25米了(没考虑中间绿化了哈);但是有些车道又是共用的,比如向左和前行道路是共用的;下面图片就是很清楚说明了WiFi的信道和频段的分布: 这下又有疑问了,AP和STA通信的时候,这个信道在哪个上面是由谁决定的呢?其实,在AP建立的时候信道就确定了,下面的STA要和当前的AP通信就必须选择同一个信道,在WiFi运行的过载中信道号也是不改变的,暂时还没听说过WiFi做跳频处理;大家可以用笔记本登入家里的WiFi试试,里面肯定有一项是选择AP信道。7)、DHCP SERVER、 DHCP CLIENT:就是开启是否IP地址由AP分配给你的STA,DHCP SERVER是针对AP模式的,就是要不要开始这个IP分配功能, DHCP CLIENT是针对STA的,是自己的静态IP还是接受AP的分配;这个需要根据客户项目需要选择啦; 二、术语:Beacon 信标:就是AP每隔一段时间就会发出了,告诉周围环境里面的Station存在AP;周围环境的STA马上就知道了,就好比我们去一个饭店吃饭的时候总是习惯用手机搜索一下周围环境的WiFi,列表里面的AP名字/SSID就是通过beacon发出来的,好像一般是100ms发一次,时间也是可以设置的; WPA/WPA2/WEP:就是加密方式啦,接入一个新的WiFi 热点要么免费,要么加密,需要输入密钥,这样才能保证别人不蹭网,也能保证网络的安全性;WPA2好像内部用的是AES加密方式,PS:AES貌似是目前最强的加密方式,分成128/196/256bit加密密钥; 三、硬件设计:411模块硬件设计是很简单的,无非是电源脚,复位脚,配置脚,通信口,指示脚,中断脚;这里简单起见就直接贴个手册里面的参数电路来;对于单片机工程师来说毫不费力; 四、软件驱动编写:就是SPI的收发函数了;中断有数据的时候就会产生,SPI发时钟去读即可(空闲是0,有数据待读取出来是1);1)、初始化单片机SPI口,注意模块的SPI时钟最高支持16MHz;初始化GPIO/开IO中断;   void SPI_Init(void)   { //初始化单片机SPI口(注意SPI时钟不能太高);CPOL = 0-------------------------------------时钟信号在低电平时空闲;
    CPHA = 0------------------------------------数据在时钟上升沿锁存,在时钟下将沿传输;
    MSB_FIRST------------------------------------数据高位首先发送;
    8 BIT MODE-----------------------------------数据宽度为 8 位;
    CS----------------------------------------------从机选择信号低有效;   }   void GPIO_Init(void)   {//设置连接到模块INT脚的那个GPIO口为输入状态;      //开启该GPIO的中断;   } 2)、void SPI_Send_Bytes(uint8_t* p_temp,uint8_t data_len)   {//不同单片机,修改底层发函数了   }3)、void SPI_Get_Bytes(uint8_t* p_temp,uint8_t data_len)   { //不同单片机,修改底层收函数了   }4)、GPIO中断函数编写   void GPIO_PINx_IRQ_Handler(void)
   { while(查询INT脚的电平==1){SPI_Get_Bytes(x,y);} } 五、RAK411编程手册RAK411-SPI 编程手册 V1.2.pdf详细介绍了模块的SPI指令和相关操作数; 六、上面是RAK411模块的简单使用方法,很简单,设计很快就能完成数据传输了;

xiaofei558008 发表于 2014-12-21 20:21

写的不好,希望大家交流用

xiaofei558008 发表于 2014-12-21 20:52

IP不是全球唯一,只有MAC,Sorry

caoenq 发表于 2014-12-22 09:02

xiaofei558008 发表于 2014-12-21 20:52 static/image/common/back.gif
IP不是全球唯一,只有MAC,Sorry

请教: “3)、STA:Station的缩写,站点的意思,就是你可以找到附近环境里面的可见的AP,但是STA之间是不可见的,STA与STA通信需要通过AP才可以的;这类似于手机,手机之间打电话当然需要基站来传递啦;”
按造这个定义,STA就是AP,后面又提到了AP与STA的通信,这个有点糊涂,“AP与STA的通信”、“AP与AP的通信”是一回事吗?

rhf958 发表于 2014-12-22 09:43

不知楼上何以得出“STA就是AP”?ap是access point的缩略

disguise2012 发表于 2014-12-23 10:50

首先感谢楼主的分享!我想请教一下,最近在考虑视频wifi传输的方案,楼主能否指教下,不知道开发难度大不大,有没有可以推荐的模块,谢谢!

jcx0324 发表于 2014-12-30 12:20

请教楼主,wifi连接时如果存在多个网络时如何选择你要用的网络,还有加密的wifi网络怎么验证通过

xiaofei558008 发表于 2015-1-22 12:13

caoenq 发表于 2014-12-22 09:02 static/image/common/back.gif
请教: “3)、STA:Station的缩写,站点的意思,就是你可以找到附近环境里面的可见的AP,但是STA之间是 ...

AP是可以看到名稱(SSID)的那個——家裡路由器那個,很多設備都可以看到并連接的,類事業晚上大海上的燈塔;
STA是不可見的,比如你的手機(不是開AP模式哈)或者筆記本,你只能去連接家裡的AP,但是你的筆記本是看不到你手機的,你的手機也沒法通過WiFi看到你筆記本嘛;類事業晚上大海上航行的船舶;船舶之間是看不見的,大家都只能看到燈塔

xiaofei558008 发表于 2015-1-22 12:17

本帖最后由 xiaofei558008 于 2015-1-22 13:07 编辑

接著繼續把資料分享一下下~~
物聯網WiFi 是未來趨勢,這裡推薦本土WiFi模塊供應商,RAK,深圳市瑞科慧聯
針對物聯網推出的模塊RAK415、RAK411、RAK413;
RAK415:串口透傳模塊,PC/手機瀏覽器配置,使用方式類似于配置家裡的路由器,使用十分方便,只要配置模塊的IP/端口號,即可快速使單片機通過串口傳輸數據到指定IP的指定端口號上去,只需10min上手;
RAK411:SPI接口模塊,使用稍微複雜一些,速度可達200kbyte/s,最高支持16M SPI時鐘;支持多達8個個端口號;單片機通過SPI發松相應的指令即可;
RAK413:該模塊完全是由AT指令控制,類似於國外品牌的gainspan那種配置方式,AT指令簡單,明了,非常適合單片機串口配置,另外,RAK415模塊也支持AT指令,上電后的默認情況下是透傳模式,這時只要輸入+++,即可退出透傳模式,進入AT指令配置模式;

RAK411資料包下載:http:    //pan.baidu.com/s/1o6jyGAm(去掉冒號後面的空格)
RAK413資料包下載:http:    //pan.baidu.com/s/1nt9PhFj(去掉冒號後面的空格)
RAK415資料包下載:http:    //pan.baidu.com/s/1qWPsfLU(去掉冒號後面的空格)

RAK41x系列模塊是郵票孔的封裝,加屏蔽蓋,更能適合複雜環境下的信號穩定。
該係列分為RAK41xA(板載陶瓷天線)和RAK41xB(外接天線)兩個版本;對與信號強度和使用方便性都做了很好的考慮;

相對於RAK41x系列,RAK也出品了與之對應的RAK42x系列,兩者的硬件、軟件一樣,只是封裝形式改變;RAK42x系列用的是排針接口,分成了彎角排針和直角排針兩種,這種設計更是考慮了工程師們的調試便利性和PCB空間利用更完善,對與面積受限/高度受限的設計場合都很好的兼顧到了;

RAK421資料包下載:http:    //pan.baidu.com/s/1dDyAi69(去掉冒號後面的空格)
RAK423資料包下載:]http:    //pan.baidu.com/s/1i3tcpY9(去掉冒號後面的空格)
RAK425資料包下載:http:    //pan.baidu.com/s/1o6C4XBW(去掉冒號後面的空格)

針對一般的家電、醫療、工業控制等領域,RAK即做到了簡單易用,也做到了穩定、可靠、低功耗;

xiaofei558008 发表于 2015-1-22 12:21

disguise2012 发表于 2014-12-23 10:50 static/image/common/back.gif
首先感谢楼主的分享!我想请教一下,最近在考虑视频wifi传输的方案,楼主能否指教下,不知道开发难度大不大 ...

不好意思這麼久才回復,RAK415就是很好用的模塊,直接就串口接到單片機上面去,模塊本身就是可以做AP或者STA,所有配置通過手機或者筆記本WiFi連接后,網頁配置即可(類似於配置家裡的路由器);很簡單,大概10-30min就學會了,單片機也不需要做什麼配置操作,所有就簡單完成了

xiaofei558008 发表于 2015-1-22 13:15

jcx0324 发表于 2014-12-30 12:20 static/image/common/back.gif
请教楼主,wifi连接时如果存在多个网络时如何选择你要用的网络,还有加密的wifi网络怎么验证通过 ...

您是指的是環境中有多個WiFi AP,然後又有加密的情況吧?
RAK415模塊上電起來默認是AP,手機、筆記本連上該AP;這時候模塊是可以用網頁登入的,192.168.7.1,用戶名和密碼都是admin;
登入以後模塊會把環境中的AP都列出來,然後有加密的WiFi AP就在網頁輸入密碼即可;
很簡單的;(注意,配置一個保存一個,否則就是沒有保存配置)

xiaofei558008 发表于 2015-1-22 13:29


接著上面繼續:
RAK415UART转WiFi调试工具前言:对于大多数单片机工程师来说USB转串口是很实用、很常备的工具,可以调试单片机串口/软件协议等;但是有时候呢,可能存在不方便的问题:比如,我想在实验室测试机子(高低温试验等),又想在自己办公桌电脑前面测试机子的参数,距离很大,不方便连线和搬电脑;又比如,在高压板子上面的应用,要是220V/380VAC供电的场合,我们都是很小心翼翼的连接串口调试,要是非隔离电源供电,还存在烧毁调试电脑主板的隐患;基于此,我们基于我们的RAK415A模块制作的,由于RAK415模式是透传模块,非常适合做调试工具;最近由于一个朋友要调试一款高压供电的BLDC电机,普通串口没有隔离,感觉不安全,因此找了个模块花了1小时时间画了个PCB板子,做了该调试工具(后续我会把原理图和PCB文件放在网盘上面),具体描述如下:配置:和RAK415模块使用方法一样,模块上电后,可以用手机或者笔记本WiFi扫描环境中的AP;1、手机网页配置方式:手机扫描后如下图(注意:出厂的时候AP名称叫做RAK415+MAC地址后几位):RAK415UART转WiFi调试工具前言:对于大多数单片机工程师来说USB转串口是很实用、很常备的工具,可以调试单片机串口/软件协议等;但是有时候呢,可能存在不方便的问题:比如,我想在实验室测试机子(高低温试验等),又想在自己办公桌电脑前面测试机子的参数,距离很大,不方便连线和搬电脑;又比如,在高压板子上面的应用,要是220V/380VAC供电的场合,我们都是很小心翼翼的连接串口调试,要是非隔离电源供电,还存在烧毁调试电脑主板的隐患;基于此,我们基于我们的RAK415A模块制作的,由于RAK415模式是透传模块,非常适合做调试工具;最近由于一个朋友要调试一款高压供电的BLDC电机,普通串口没有隔离,感觉不安全,因此找了个模块花了1小时时间画了个PCB板子,做了该调试工具(后续我会把原理图和PCB文件放在网盘上面),具体描述如下:配置:和RAK415模块使用方法一样,模块上电后,可以用手机或者笔记本WiFi扫描环境中的AP;1、手机网页配置方式:



手机扫描后如下图(注意:出厂的时候AP名称叫做RAK415+MAC地址后几位):
在连接WiFi 热点RAK415_APxxxx后,打开Siri浏览器(Android也一样打开任何一款浏览器)


打开浏览器后,在地址栏里面输入192.168.7.1
PS:老是忘记这个地址是啥,怎么记好嘞,192.168很常用,最后的7.1好难记哦;
这里简单的**方法就是,最后两位是我们“伟大”的党的生日7.1 这下好记了吧,当然了后面您可以自己随便改的啦,唯一的问题就是,模块恢复出厂设置后,IP地址还是192.168.7.1了。

点击“前往”后会出现对话框,模块要求我们输入用户名和密码;
用户名:admin(小写哦)
密   码:admin(小写哦)


正常进入模块后在浏览器上面出现的界面:

下面就是几个配置界面了,很简单,比家里的路由器还简单,一用就会;
需要注意的地方:
1)、模块的每个配置界面都要单独保存,否则不会生效哦;
2)、一般情况下模块最好不要设置成STA模式,除非要加入路由器进行远程调试,传输数据;一般AP模式就够用了,因为模块有保存功能的,设置成STA以后就找不到模块了,需要重新把模块回复出厂设置,或者通过路由器登入模块后在配置模块为AP模式,用起来麻烦一点点;
下面是各个界面的截图:

上面是配置部分啦;很简单就几个操作完成了,下面就是如何通过网络调试助手来调试了;
//======================================================================
未完待续,下次继续讲模块的手机 / PC 通过串口助手或者网络助手调试;




caoenq 发表于 2015-1-23 13:00

xiaofei558008 发表于 2015-1-22 12:13 static/image/common/back.gif
AP是可以看到名稱(SSID)的那個——家裡路由器那個,很多設備都可以看到并連接的,類事業晚上大海上的燈 ...

多谢解答

c8112499 发表于 2015-1-25 23:49

写的已经不错了,支持一下                           

disguise2012 发表于 2015-2-5 14:28

xiaofei558008 发表于 2015-1-22 12:21
不好意思這麼久才回復,RAK415就是很好用的模塊,直接就串口接到單片機上面去,模塊本身就是可以做AP或者 ...

如果用这个模块传输视频的话,具体该如何实现呢,是可以直接接USB摄像头吗,

xiaofei558008 发表于 2015-2-8 14:55

disguise2012 发表于 2015-2-5 14:28
如果用这个模块传输视频的话,具体该如何实现呢,是可以直接接USB摄像头吗, ...

这个模块用来传输视频比较困难了;
这里推荐另外一个视频语音模组LX520同样是RAK出品的;
下面链接是这个模块的资料:
http                ://pan.baidu.com/s/1i3veFAl

xiaofei558008 发表于 2015-2-8 15:10

顺便附上目前所有WiFi模块的资料下载链接~
请批量去掉Http后面的空格~

RAK全部资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1pJv72iR

RAK320文档资料分享链接:            
链接:            http            ://pan.baidu.com/s/1cvit4

RAK411资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1bnuAair

RAK412 API文档资料分享链接:            
链接:            http            ://pan.baidu.com/s/1mgzbvpY

RAK413资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1c01Z700

RAK415资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1jG7mVvo

RAK421资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1c0cXb7U

RAK423资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1qWoJQt2

RAK425资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1o6DQzOm

RAK431资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1sj3ATJ3

RAK433资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1dDxTHWd

RAK435资料包分享链接:            
链接:            http            ://pan.baidu.com/s/1gd9uYbx

510文档资料分享链接:            
链接:            http            ://pan.baidu.com/s/1jGKKiuM

LX520文档资料分享链接:            
链接:            http            ://pan.baidu.com/s/1qWlwbTE

RAK相关工具及使用说明分享链接:            
链接:            http            ://pan.baidu.com/s/1c08LgBY

鬼未眠 发表于 2015-2-16 18:16

受教了

lgc403 发表于 2015-3-12 11:25

谢谢

tongshezheng 发表于 2015-3-12 21:12

MARK。
页: [1] 2 3
查看完整版本: WiFi模块调试心得