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