Hi3861V100、Hi3861LV100 通過API(Application Programming Interface)面向開發者提供Wi-Fi功能的開發和應用接口,包括芯片初始化、資源配置、Station創建和配置、掃描、關聯以及去關聯、狀態查詢等一系列功能, 框架結構如圖1-1所示。
各功能模塊說明如下:
APP應用開發層:用戶基于API接口的二次開發。
Example示例:SDK提供的功能開發示例。
API接口:提供基于SDK的通用接口。
LWIP協議棧:網絡協議棧。
WPA SUPPLICANT(含HOSTAPD):Wi-Fi管理模塊。
Wi-Fi驅動:802.11協議實現模塊。
Platform平臺:提供SoC系統板級支持包(包括:芯片和外圍設備驅動、操作系統以及系統管理)
1、Wi-Fi驅動加載與卸載
1.1 概述
在完成芯片上電后,驅動加載實現對芯片寄存器的初始配置、校準參數讀取與寫入、軟件資源的申請和配置;驅動卸載實現軟件資源的釋放。
1.2 開發流程
使用場景:Wi-Fi驅動初始化為Wi-Fi功能提供基本資源配置和芯片初始化,是Wi-Fi功能實現的第一步。當需要配置Wi-Fi功能時,必須先完成驅動的初始化,Wi-Fi功能使用完成后,可以使用去初始化完成資源釋放也可以使用軟復位來完成資源釋放。
功能:Wi-Fi驅動加載與卸載提供的接口如表2-1所示
使用驅動加載與卸載的典型流程:
步驟1:調用hi_wifi_init, 完成Wi-Fi驅動初始化。
步驟2:參考“3 STA功能”或“4 SoftAp功能”配置Wi-Fi功能。
步驟3:調用hi_wifi_deinit,完成Wi-Fi驅動去初始化。
----
結束
返回值如表2-2所示
1.3 注意事項
驅動資源配置不支持運行中修改,須先卸載驅動再進行修改,修改后重新初始化。
驅動為了保證Wi-Fi業務的連續性,會在啟動時根據VAP數量和用戶數量預申請內存,其中1個VAP資源預申請約5K內存,1個用戶資源預申請約7K內存,請根據場景需要合理配置初始化的資源數。目前僅配網時需要用到SoftAp和STA共存,一般建議配置為2個VAP和2個用戶;如果可以實現配網時先關閉SoftAp再啟動STA去關聯,VAP和用戶數量均可配置為1。
1.4 編程實例
示例1:基于LiteOS的app_main函數,在系統初始化時自動完成Wi-Fi驅動的加載,此加載方式無須進行卸載開發,系統reboot時自動完成驅動卸載和加載。
示例2:基于shell命令,在系統啟動后,通過手動下發shell命令完成Wi-Fi驅動的加載和卸載。
2、STA功能
2.1 概述
STA功能即NON-AP Station功能,實現驅動STA VAP的創建、掃描、關聯以及DHCP,完成通信鏈路的建立。開發STA功能前,須完成驅動加載。
2.2 開發流程
使用場景:當需要接入某個網絡并與該網絡通信時,需要啟動STA功能。
功能:驅動STA功能提供的接口,如表3-1所示。
STA功能開發的典型流程:
步驟1:調用hi_wifi_sta_start, 啟動STA。
步驟2:調用hi_wifi_set_bandwidth, 設置STA帶寬模式,20M帶寬可不用配置。
步驟3:(可選,根據需要配置)調用hi_wifi_sta_set_reconnect_policy, 設置自動重連。
步驟4:調用hi_wifi_sta_scan(或調用hi_wifi_sta_advance_scan;執行帶參數掃描),觸發STA掃描。
步驟5:調用hi_wifi_sta_scan_results,獲取掃描結果。
步驟6:根據接入網絡需求,自定義篩選掃描結果,調用hi_wifi_sta_connect, 進行連接。
步驟7:調用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態。
步驟8:連接成功后,調用netifapi_dhcp_start,啟動DHCP客戶端,獲取IP地址。
步驟9:調用hi_wifi_sta_disconncet,離開當前連接的網絡。
步驟10:調用netifapi_dhcps_stop,停止DHCP客戶端。
步驟11:調用hi_wifi_sta_stop,關閉STA。
---結束
返回值如表3-2所示
2.3 注意事項
STA支持5M/1 OM窄帶模式,需要時可調用接口設置,不調用則默認啟動20M帶寬STA。
掃描為非阻塞式接口,掃描命令下發成功后需要延遲一段時間后再獲取掃描結果,全信道掃描延遲時間建議設置為1s。
可通過指定SSID、BSSID、信道等帶指定參數的掃描,實現更精準地掃描,縮短掃描時間。
已知待連接網絡的參數時,可省去掃描過程,直接發起連接。
連接為非阻塞式接口,連接命令下發成功后,需要通過命令獲取連接狀態。
注冊事件回調函數后,Wi-Fi相關的事件會通過該回調上報用戶,用戶可根據事件執行后續動作。
不支持重復啟動STA,再次啟動STA時須先執行關閉STA。
關閉STA步驟為可選,設備所處的網絡地位不變,不需要執行關閉STA。
2.4 編程實例
示例:實現STA功能啟動、掃描、關聯以及獲取IP地址。
3、SoftAp功能
3.1 概述
SoftAp功能提供網絡接入點供其他STA接入,并對接入的STA提供DHCP Server服務。
3.2 開發流程
使用場景:當需要創建一個網絡接入點,供其他設備接入并共享網絡內的數據時,需要使用SoftAP功能。
功能:提供的接口如表4-1所示。
SoftAP功能開發的典型流程:
步驟1:配置SoftAp的網絡參數:
-調用hi_wifi_softap_set_protocol_mode,設置協議模式。
-調用hi_wifi_softap_set_beacon_period,設置beacon周期。
-調用hi_wifi_softap_ set_dtim_period,設置dtim周期。
步驟2:調用hi_wifi_softap_start,啟動SoftAp。
步驟3:調用hi_wifi_set_bandwidth,設置SoftAp的帶寬,20M帶寬可不用配置。
步驟4:調用netifapi_netif_set_addr,配置DHCP服務器。
步驟5:調用netifapi_dhcps_start,啟動DHCP服務器。
步驟6:調用netifapi_dhcps_stop,停止DHCP服務器。
步驟7:調用hi_wifi_softap_stop,關閉SoftAp。
--結束
返回值如表4-2所示
3.3 注意事項
SoftAp的網絡參數為可選配置,無特殊要求均可使用初始默認值。
SoftAp支持5M/1 0M窄帶模式,需要時可調用接口設置,不調用則默認啟動20M帶寬SoftAp。
SoftAp的網絡參數在關閉SoftAp時不會重置,會繼續沿用_上一次配置,重啟單板可恢復至初始默認值。
SoftAp模式下最大關聯用戶數限制:
-小于初始化時配置的用戶數量。
-最大關聯用戶不超過2個。
3.4 編程實例
示例:實現將SoftAp功能的beacon周期配置為200ms,并啟動SoftAp,最后將DHCP服務器的IP地址配置為192.168.43.1。
除此之外,Wi-Fi軟件應用創建還包括了混雜模式、CSI數據采集、STA&SoftAP共存、Wi-Fi&藍牙共存、軟件重傳等諸多無線網實用功能開發。想詳細了解學習的童鞋,可以掃碼加入我們的鴻蒙技術交流群,免費領取領取完整的基于HarmonyOS Hi3861V100開發板Wi-Fi模組應用開發文檔。另外還給大家準備了超級詳細的Hi3861V100硬件&軟件開發文檔資料,也一并免費送給大家學習。
責任編輯人:CC
-
wi-fi
+關注
關注
14文章
2132瀏覽量
124422 -
Hi3861
+關注
關注
1文章
59瀏覽量
6491
原文標題:鴻蒙實戰課堂 | Hi3861V100創建Wi-Fi驅動應用詳細步驟與方法
文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論