串列埠WiFi的除錯心得
WiFi模組的微控制器開發
一直以來都在開發微控制器,最近有智慧家居的案子需要開發用到WiFi模組,於是剛剛上手RAK411;經過半年時間的瞭解/學習,總結如下:
一、概念:
1)、Wi-Fi:大部分微控制器工程師的理解就是手機/筆記本上面和家裡路由器的這些東西叫WiFi,但是具體到物聯網等相關行業的時候也經常遇到;這裡我說一下我理解的WiFi概念;
按照我的理解是基於2.4G(當然也有5G頻段的WiFi)自由無線頻段的無線通訊方式,簡單的理解就是一種跑在2.4G無線上面的協議叫WiFi;
分層理解就是:硬體層的2.4G收發器,和軟體層的WiFi協議組成了WiFi;
具體WiFi協議很複雜,據說是類似於
2)、AP:熱點,類似於3G網路的基站,家裡的路由器就是AP,手機也可以開AP,我們在WiFi列表裡面收到的就是AP的SSID,即:WiFiAP的名字;
3)、STA:Station的縮寫,站點的意思,就是你可以找到附近環境裡面的可見的AP,但是STA之間是不可見的,STA與STA通訊需要通過AP才可以的;這類似於手機,手機之間打電話當然需要基站來傳遞啦;
4)、TCP/IP:這個是網際網路基礎的協議,IP就是地址,全球唯一,TCP是網路協議,同樣還有UDP,這兩者有區別,但是我沒有太仔細研究下去,UDP是傳送後不管應答,TCP是有應答的,因此TCP更可靠;
5
訊號強度:dB;就功率的單位,具體怎麼理解/換算後面再撰寫更詳細文章研究;
6)、通道:就是2.4G不是剛剛好的2.4G,有一個頻率範圍,這個範圍叫做頻寬,這個頻寬裡又分成好多通道,每個通道又佔用一定寬度頻寬;好比說是:比如深南大道寬200米,有雙向8車道,這樣就有每個車道25米了(沒考慮中間綠化了哈);但是有些車道又是共享的,比如向左和前行道路是共享的;下面圖片就是很清楚說明了WiFi的通道和頻段的分佈:
這下又有疑問了,AP和STA通訊的時候,這個通道在哪個上面是由誰決定的呢?其實,在AP建立的時候通道就確定了,下面的
7)、DHCPSERVER、DHCPCLIENT:
就是開啟是否IP地址由AP分配給你的STA,DHCPSERVER是針對AP模式的,就是要不要開始這個IP分配功能,DHCPCLIENT是針對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中斷;
voidSPI_Init(void)
{//初始化微控制器SPI口(注意SPI時鐘不能太高);
CPOL=0-------------------------------------時鐘訊號在低電平時空閒;CPHA=0------------------------------------資料在時鐘上升沿鎖存,在時鐘下將沿傳輸;MSB_FIRST------------------------------------資料高位首先發送;8BITMODE-----------------------------------資料寬度為8位;CS----------------------------------------------從機選擇訊號低有效;
}
voidGPIO_Init(void)
{//設定連線到模組INT腳的那個GPIO口為輸入狀態;
//開啟該GPIO的中斷;
}
2)、voidSPI_Send_Bytes(uint8_t*p_temp,uint8_tdata_len)
{//不同微控制器,修改底層發函數了
}
3)、voidSPI_Get_Bytes(uint8_t*p_temp,uint8_tdata_len)
{//不同微控制器,修改底層收函數了
}
4)、GPIO中斷函式編寫
voidGPIO_PINx_IRQ_Handler(void){while(查詢INT腳的電平==1)
{SPI_Get_Bytes(x,y);
}
}
五、RAK411程式設計手冊
RAK411-SPI程式設計手冊V1.2.pdf詳細介紹了模組的SPI指令和相關運算元;
六、上面是RAK411模組的簡單使用方法,很簡單,設計很快就能完成資料傳輸了;
七、資料補充;
AP是可以看到名稱(SSID)的那個——家裡路由器那個,很多裝置都可以看到並連線的,類事業晚上大海上的燈塔;
STA是不可見的,比如你的手機(不是開AP模式哈)或者筆記本,你只能去連線家裡的AP,但是你的筆記本是看不到你手機的,你的手機也沒法通過WiFi看到你筆記本嘛;類事業晚上大海上航行的船舶;船舶之間是看不見的,大家都只能看到燈塔;
物聯網WiFi是未來趨勢,這裡推薦本土WiFi模組供貨商,RAK,深圳市瑞科慧聯
針對物聯網推出的模組RAK415、RAK411、RAK413;
RAK415:串列埠透傳模組,PC/手機瀏覽器配置,使用方式類似於配置家裡的路由器,使用十分方便,只要配置模組的IP/埠號,即可快速使微控制器通過串列埠傳輸資料到指定IP的指定埠號上去,只需10min上手;
RAK411:SPI介面模組,使用稍微複雜一些,速度可達200kbyte/s,最高支援16MSPI時鐘;支援多達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即做到了簡單易用,也做到了穩定、可靠、低功耗;
順便附上目前所有WiFi模組的資料下載連結~
RAK全部資料包分享連結:
連結:http://pan.baidu.com/s/1pJv72iR
RAK320文件資料分享連結:
連結:http://pan.baidu.com/s/1cvit4
RAK411資料包分享連結:
連結:http://pan.baidu.com/s/1bnuAair
RAK412API文件資料分享連結:
連結: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
//===================================================================================
RAK415 UART轉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 通過串列埠助手或者網路助手除錯;