如何開始WiFi嵌入式軟體開發
作者:小勇
篇幅:全文共2420 字
閱讀時長:閱讀需要 3分鐘
關鍵字:wifi、802.11、TCP/UDP
提示:以下內容僅為個人工作分享,有興趣交流的夥伴可在下方討論區留言。
小編寄語
首先感謝百忙之中的小勇帶來的分享,說到嵌入式開發,相信看過往期節目分享的夥伴,肯定也不陌生,本期小勇將帶來更深一步的介紹,重點是我們都習以為常的WIFI,從中你會發現,作為一個理工科出身的學生,在大學期間似乎都參與過實驗室的項目鍛煉,所以作為嚮往此職業的夥伴,記住實操是你邁向此方向必做之事;本文有更為全面的資料分享和經驗分享,希望能給有興趣小夥伴帶來幫助,非理工科夥伴可能看上去會一頭霧水,但是沒關係,持續關注,有你感興趣的職業,可以後台留言,我們爭取找到相關夥伴分享。
PS:我們約定的小目標依舊持續發酵中,每周六更新一種職業的故事或乾貨,敬請期待吧,有興趣的小夥伴也可以參與投稿喲,也希望大家多多支持,友情分享,讓更多職業的夥伴加入這個大家庭,感受不同職業生活的故事和成長方法,下面欣賞今天的精彩內容乾貨吧
大學實驗室開篇
分享此文恰逢筆者研究生畢業,即將參加工作。筆者本科三年級開始進入實驗室學習,主要以參加全國「飛思卡爾」智能汽車競賽、全國電子設計競賽等科技比賽為目的,比賽中承擔演算法設計和軟體編碼任務——需要指出,大學實驗室的確能夠給予學生大量的訓練機會和學習資源
後來,研究生期間負責了導師的多項科研項目,深入到項目的立項、方案制定、嵌入式軟硬體開發和驗收全過程——研究生階段一定要全程參與至少一個科研項目
唯一不足的是,參與的比賽和科研項目多是基於C51、Freescale、STM32、ARM、FPGA等單片機平台上的裸機開發,毫無疑問的是我們還需要掌握基於操作系統(以Linux為主流)的嵌入式軟體開發。
筆者一度將嵌入式軟體開發看作一項工具,請大家參考朋友小澤前期分享的文章《淺談嵌入式軟體開發師入門之路》來學習。然而,掌握工具只是第一步,運用到具體行業是關鍵。本文主要結合WiFi嵌入式軟體開發崗位的3個月實習經歷,淺談一下如何開始WiFi技術軟體開發。不足之處,歡迎探討,歡迎指教!
什麼是WIFI技術
WiFi(Wireless Fidelity,無線保真技術)是一種允許電子設備通過2.4G或5G ISM免證頻段來連接到某個無線區域網(WLAN)的技術。所述的電子設備通常就是一個無線路由器,其電波覆蓋有效範圍都可以採用WiFi連接方式進行聯網,如果無線路由器連接了一條ADSL線路或者別的上網線路,則又被稱為熱點或接入點(AP)。所有的諸如智能手機、平板電腦和筆記本電腦等都可通過AP進行無線上網。
圖1
以WiFi技術為代表的無線網路相較於有線網路具有巨大的優勢(移動性、靈活性、低成本),使其佔據了數百億的設備市場,那麼作為一名嵌入式軟體開發人員又該怎樣涉足WiFi技術開發行業呢?
WiFi嵌入式軟體開發工作需要學習什麼?
除了學習朋友小澤前期分享的文章 《淺談嵌入式軟體開發師入門之路》中提到的所有知識點,筆者還建議按照以下四個階段進行學習。
無論從事何種行業,理論學習都應放在首位。802.11標準相關資料主要包括:
資料一:
《802.11 Wireless Networks: The Definitive Guide》
(僅支持複製到瀏覽器進行查看)
說明:資料一從整體上介紹了802.11無線網路相關概念和待解決的問題,有利於讀者快速建立知識框架,建議購買漢譯影印版
資料二:
《IEEE Std 802.11-2007》及其他更新的電子版本
(僅支持複製到瀏覽器進行查看)
圖2
說明:資料二為全英文版本,是對資料一中提及的主要功能特點做具體說明,建議讀者在對資料一知識點有疑問的情況下對照閱讀。以下學習plan僅供參考,並結合OmniPeek抓包軟體分析數據幀。
圖3
Note:
class-A:very important, read in detail
class-B:important, try to grasp the document
class-C : go through, read in detail when needed
上述資料涉及的內容較多,建議讀者重點掌握:
(1) 802.11拓撲結構:BSS、ESS、IBSS和MBSS.
(2) 802.11 2.4GH和5GHz ISM的頻段與信道劃分、基本速率與支持速率、數據速率與吞吐率、本地雜訊與信噪比定義.
(3) 802.11物理層調製技術:ASK、FSK和PSK.
(4) 802.11分層思想:數據鏈路層和物理層.
(5) 802.11成幀細節:
管理幀 - Beacon, Association Req/Res, Deauthentication/Disassociation)
數據幀 - data.
(6) 802.11無線網路連接:掃描、認證與關聯(較難).
前者定義了數據鏈路層與物理層標準,而後者定義了網路層及其以上各層協議內容,但是對於一個優秀的WiFi嵌入式軟體開發工程師來說,完整地掌握這兩部分內容則對於定位、分析和解決開發中遇到的各種問題至關重要。建議結合WireShark抓包軟體分析數據幀。對於一個優秀的WiFi嵌入式軟體開發工程師來說,完整地掌握這兩部分內容則對於定位、分析和解決開發中遇到的各種問題至關重要
圖4
(1) 應用層協議:DHCP.
(2) 運輸層協議:TCP、UDP.
(3) 網路層協議:IP、ARP、RARP、ICMP、IGMP.
階段二:802.11無線路由器功能參數學習
無線路由器是WiFi技術的具體應用之一,其內置功能豐富,從事無線路由器下WiFi技術開發的夥伴們應當完全了解其參數意義。筆者建議登錄家中的無線路由器網關(如TP-Link的網關一般為192.168.0.1)來對照學習具體的功能參數,主要掌握如下6點:
(1) WAN口接入方式:Static IP、自動獲取IP、VPN撥號(PPPOE、PPTP、L2TP).
(2) LAN口接入方式:DHCP伺服器、static IP.
(3) 工作模式:bridge mode、router mode.
(5) WPS保護認證:按鈕、PIN碼.
(6) VLAN、NAT地址轉換、MAC地址克隆、DNS伺服器.
階段三:802.11 無線路由器軟體開發學習
現在的無線路由器一般基於開源的OpenWrt平台進行軟體開發。OpenWrt是一種嵌入式Linux操作系統,可以將很多Linux平台下的軟體移植到此平台。
為什麼都喜歡採用開源操作系統呢?
一方面,是開發門檻低,很多功能在原廠SDK和第三方固件中已經具備,開發者只需在UI、晶元驅動和移動終端控制等軟體功能上多下功夫即可;
另一方面,開源軟體不僅可以降低研發成本,還可以縮短研發時間。
無線路由器軟體系統主要掌握5個方面:
(1) 進程:掌握各種協議進程的軟體實現:IP、TCP、UDP、RIP、OSPF、ARP、ICMP、IGMP、NAT等。
(2) 內核:為系統的其它部分提供基本的系統服務,如CPU、存儲器管理、進程調度、定時器和時鐘管理。
(3) 報文緩衝:用來存放將要被交換的報文,對應報文的Tx與Rx過程。
(4) 設備驅動程序:控制802.11網路介面硬體設備及其它外圍設備(如Flash)。其中802.11網路介面硬體設備驅動需要針對上述802.11標準進行設計,主要的工作量也在於此,建議對應通信幀的類型進行學習。
(5) 交換控制軟體:根據轉發方式控制報文的交換,在高端線速路由器中該部分功能由硬體實現。
階段四:802.11無線路由器技術指標測試學習
無線路由器技術指標測試至關重要,必須符合行業標準認定的WiFi路由產品功能測試、穩定性測試、可靠性測試、兼容性測試和性能測試等要求,這是大家必須認真了解的。在設計過程中也常常需要通過這種手段來定位、分析和解決問題。
其中,功能測試主要針對階段一中提到的行業標準和階段二中提到的參數;穩定性測試、可靠性測試和兼容性測試主要針對不同環境或替代型終端下產品的性能差異;
性能測試主要採用軟體工具(IxChariot)針對Lan to Wlan吞吐量、Lan to Wan 吞吐量、Wlan to Wan吞吐量、加密狀態下的吞吐量(WEPWPAWPA2)是否符合行業標準。
小結
以上學習階段涵蓋了筆者進入WiFi嵌入式軟體開發崗位實習時幾乎所有的學習內容,個人覺得還是具有一定的借鑒作用,希望能夠幫到大家。對於文中有所疏漏或不足之處,請多多指教!


TAG:聽見職業 |
※谷歌正式發布Android 平台的增強現實軟體工具開發包
※純前端開發案例:用 SpreadJS 搭建信息系統軟體開發平台
※嵌入式Linux驅動開發基礎總結
※Oculus Go已經開始向開發者發貨 小米VR一體機上市還會遠嗎?
※蘋果正在開發新型MacBook 鉸鏈 更輕便
※微軟正開發「口袋式」雙屏幕 Surface 設備
※微軟將收購軟體開發商 Xoxco,聚焦 AI 和聊天機器人開發
※微軟新開發的軟體Timeline將支持蘋果與安卓同步
※谷歌將開放地圖,遊戲開發者們可以開發下一款 Pokémon Go 了
※Oculus正開發浸入式VR劇場體驗 把「演員」帶到你家裡
※嵌入式er日常!一位嵌入式er轉入iOS開發後的感概
※Oculus為開發者推出硬體調查數據平台
※Dart 2 正式發布:針對客戶端開發進行了優化
※嵌入式軟體開發的發展路線
※微軟發布面向Windows開發者的人工智慧平台
※Mock API是如何在開發中發光發熱的?
※為AI開發者而生 Qualcomm攜手創通聯達發布終端側AI開發套件
※《真女神轉生5》進入正式開發 將登陸Switch
※Block.one 宣布開發者門戶開啟 為開發者提供支持
※開發者破解 iOSbeta 發現即將發售 HomePod 秘密新功能