Hi3861V100、Hi3861LV100 通過API(Application Programming Interface)面向開發(fā)者提供Wi-Fi功能的開發(fā)和應用接口,包括芯片初始化、資源配置、Station創(chuàng)建和配置、掃描、關聯以及去關聯、狀態(tài)查詢等一系列功能, 框架結構如圖1-1所示。

各功能模塊說明如下:
APP應用開發(fā)層:用戶基于API接口的二次開發(fā)。
Example示例:SDK提供的功能開發(fā)示例。
API接口:提供基于SDK的通用接口。
LWIP協議棧:網絡協議棧。
WPA SUPPLICANT(含HOSTAPD):Wi-Fi管理模塊。
Wi-Fi驅動:802.11協議實現模塊。
Platform平臺:提供SoC系統(tǒng)板級支持包(包括:芯片和外圍設備驅動、操作系統(tǒng)以及系統(tǒng)管理)

1、Wi-Fi驅動加載與卸載
1.1 概述
在完成芯片上電后,驅動加載實現對芯片寄存器的初始配置、校準參數讀取與寫入、軟件資源的申請和配置;驅動卸載實現軟件資源的釋放。
1.2 開發(fā)流程
使用場景: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業(yè)務的連續(xù)性,會在啟動時根據VAP數量和用戶數量預申請內存,其中1個VAP資源預申請約5K內存,1個用戶資源預申請約7K內存,請根據場景需要合理配置初始化的資源數。目前僅配網時需要用到SoftAp和STA共存,一般建議配置為2個VAP和2個用戶;如果可以實現配網時先關閉SoftAp再啟動STA去關聯,VAP和用戶數量均可配置為1。
1.4 編程實例
示例1:基于LiteOS的app_main函數,在系統(tǒng)初始化時自動完成Wi-Fi驅動的加載,此加載方式無須進行卸載開發(fā),系統(tǒng)reboot時自動完成驅動卸載和加載。


示例2:基于shell命令,在系統(tǒng)啟動后,通過手動下發(fā)shell命令完成Wi-Fi驅動的加載和卸載。



2、STA功能
2.1 概述
STA功能即NON-AP Station功能,實現驅動STA VAP的創(chuàng)建、掃描、關聯以及DHCP,完成通信鏈路的建立。開發(fā)STA功能前,須完成驅動加載。
2.2 開發(fā)流程
使用場景:當需要接入某個網絡并與該網絡通信時,需要啟動STA功能。
功能:驅動STA功能提供的接口,如表3-1所示。


STA功能開發(fā)的典型流程:
步驟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;執(zhí)行帶參數掃描),觸發(fā)STA掃描。
步驟5:調用hi_wifi_sta_scan_results,獲取掃描結果。
步驟6:根據接入網絡需求,自定義篩選掃描結果,調用hi_wifi_sta_connect, 進行連接。
步驟7:調用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態(tài)。
步驟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。
掃描為非阻塞式接口,掃描命令下發(fā)成功后需要延遲一段時間后再獲取掃描結果,全信道掃描延遲時間建議設置為1s。
可通過指定SSID、BSSID、信道等帶指定參數的掃描,實現更精準地掃描,縮短掃描時間。
已知待連接網絡的參數時,可省去掃描過程,直接發(fā)起連接。
連接為非阻塞式接口,連接命令下發(fā)成功后,需要通過命令獲取連接狀態(tài)。
注冊事件回調函數后,Wi-Fi相關的事件會通過該回調上報用戶,用戶可根據事件執(zhí)行后續(xù)動作。
不支持重復啟動STA,再次啟動STA時須先執(zhí)行關閉STA。
關閉STA步驟為可選,設備所處的網絡地位不變,不需要執(zhí)行關閉STA。
2.4 編程實例
示例:實現STA功能啟動、掃描、關聯以及獲取IP地址。





3、SoftAp功能
3.1 概述
SoftAp功能提供網絡接入點供其他STA接入,并對接入的STA提供DHCP Server服務。
3.2 開發(fā)流程
使用場景:當需要創(chuàng)建一個網絡接入點,供其他設備接入并共享網絡內的數據時,需要使用SoftAP功能。
功能:提供的接口如表4-1所示。


SoftAP功能開發(fā)的典型流程:
步驟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時不會重置,會繼續(xù)沿用_上一次配置,重啟單板可恢復至初始默認值。
SoftAp模式下最大關聯用戶數限制:
-小于初始化時配置的用戶數量。
-最大關聯用戶不超過2個。
3.4 編程實例
示例:實現將SoftAp功能的beacon周期配置為200ms,并啟動SoftAp,最后將DHCP服務器的IP地址配置為192.168.43.1。


除此之外,Wi-Fi軟件應用創(chuàng)建還包括了混雜模式、CSI數據采集、STA&SoftAP共存、Wi-Fi&藍牙共存、軟件重傳等諸多無線網實用功能開發(fā)。想詳細了解學習的童鞋,可以掃碼加入我們的鴻蒙技術交流群,免費領取領取完整的基于HarmonyOS Hi3861V100開發(fā)板Wi-Fi模組應用開發(fā)文檔。另外還給大家準備了超級詳細的Hi3861V100硬件&軟件開發(fā)文檔資料,也一并免費送給大家學習。
責任編輯人:CC
-
wi-fi
+關注
關注
15文章
2341瀏覽量
128655 -
Hi3861
+關注
關注
1文章
64瀏覽量
7462
原文標題:鴻蒙實戰(zhàn)課堂 | Hi3861V100創(chuàng)建Wi-Fi驅動應用詳細步驟與方法
文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄

Hi3861V100創(chuàng)建Wi-Fi驅動應用的步驟
評論