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ū)動(dòng):802.11協(xié)議實(shí)現(xiàn)模塊。
Platform平臺(tái):提供SoC系統(tǒng)板級(jí)支持包(包括:芯片和外圍設(shè)備驅(qū)動(dòng)、操作系統(tǒng)以及系統(tǒng)管理)
1、Wi-Fi驅(qū)動(dòng)加載與卸載
1.1 概述
在完成芯片上電后,驅(qū)動(dòng)加載實(shí)現(xiàn)對芯片寄存器的初始配置、校準(zhǔn)參數(shù)讀取與寫入、軟件資源的申請和配置;驅(qū)動(dòng)卸載實(shí)現(xiàn)軟件資源的釋放。
1.2 開發(fā)流程
使用場景:Wi-Fi驅(qū)動(dòng)初始化為Wi-Fi功能提供基本資源配置和芯片初始化,是Wi-Fi功能實(shí)現(xiàn)的第一步。當(dāng)需要配置Wi-Fi功能時(shí),必須先完成驅(qū)動(dòng)的初始化,Wi-Fi功能使用完成后,可以使用去初始化完成資源釋放也可以使用軟復(fù)位來完成資源釋放。
功能:Wi-Fi驅(qū)動(dòng)加載與卸載提供的接口如表2-1所示
使用驅(qū)動(dòng)加載與卸載的典型流程:
步驟1:調(diào)用hi_wifi_init, 完成Wi-Fi驅(qū)動(dòng)初始化。
步驟2:參考“3 STA功能”或“4 SoftAp功能”配置Wi-Fi功能。
步驟3:調(diào)用hi_wifi_deinit,完成Wi-Fi驅(qū)動(dòng)去初始化。
----
結(jié)束
返回值如表2-2所示
1.3 注意事項(xiàng)
驅(qū)動(dòng)資源配置不支持運(yùn)行中修改,須先卸載驅(qū)動(dòng)再進(jìn)行修改,修改后重新初始化。
驅(qū)動(dòng)為了保證Wi-Fi業(yè)務(wù)的連續(xù)性,會(huì)在啟動(dòng)時(shí)根據(jù)VAP數(shù)量和用戶數(shù)量預(yù)申請內(nèi)存,其中1個(gè)VAP資源預(yù)申請約5K內(nèi)存,1個(gè)用戶資源預(yù)申請約7K內(nèi)存,請根據(jù)場景需要合理配置初始化的資源數(shù)。目前僅配網(wǎng)時(shí)需要用到SoftAp和STA共存,一般建議配置為2個(gè)VAP和2個(gè)用戶;如果可以實(shí)現(xiàn)配網(wǎng)時(shí)先關(guān)閉SoftAp再啟動(dòng)STA去關(guān)聯(lián),VAP和用戶數(shù)量均可配置為1。
1.4 編程實(shí)例
示例1:基于LiteOS的app_main函數(shù),在系統(tǒng)初始化時(shí)自動(dòng)完成Wi-Fi驅(qū)動(dòng)的加載,此加載方式無須進(jìn)行卸載開發(fā),系統(tǒng)reboot時(shí)自動(dòng)完成驅(qū)動(dòng)卸載和加載。
示例2:基于shell命令,在系統(tǒng)啟動(dòng)后,通過手動(dòng)下發(fā)shell命令完成Wi-Fi驅(qū)動(dòng)的加載和卸載。
2、STA功能
2.1 概述
STA功能即NON-AP Station功能,實(shí)現(xiàn)驅(qū)動(dòng)STA VAP的創(chuàng)建、掃描、關(guān)聯(lián)以及DHCP,完成通信鏈路的建立。開發(fā)STA功能前,須完成驅(qū)動(dòng)加載。
2.2 開發(fā)流程
使用場景:當(dāng)需要接入某個(gè)網(wǎng)絡(luò)并與該網(wǎng)絡(luò)通信時(shí),需要啟動(dòng)STA功能。
功能:驅(qū)動(dòng)STA功能提供的接口,如表3-1所示。
STA功能開發(fā)的典型流程:
步驟1:調(diào)用hi_wifi_sta_start, 啟動(dòng)STA。
步驟2:調(diào)用hi_wifi_set_bandwidth, 設(shè)置STA帶寬模式,20M帶寬可不用配置。
步驟3:(可選,根據(jù)需要配置)調(diào)用hi_wifi_sta_set_reconnect_policy, 設(shè)置自動(dòng)重連。
步驟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,啟動(dòng)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窄帶模式,需要時(shí)可調(diào)用接口設(shè)置,不調(diào)用則默認(rèn)啟動(dòng)20M帶寬STA。
掃描為非阻塞式接口,掃描命令下發(fā)成功后需要延遲一段時(shí)間后再獲取掃描結(jié)果,全信道掃描延遲時(shí)間建議設(shè)置為1s。
可通過指定SSID、BSSID、信道等帶指定參數(shù)的掃描,實(shí)現(xiàn)更精準(zhǔn)地掃描,縮短掃描時(shí)間。
已知待連接網(wǎng)絡(luò)的參數(shù)時(shí),可省去掃描過程,直接發(fā)起連接。
連接為非阻塞式接口,連接命令下發(fā)成功后,需要通過命令獲取連接狀態(tài)。
注冊事件回調(diào)函數(shù)后,Wi-Fi相關(guān)的事件會(huì)通過該回調(diào)上報(bào)用戶,用戶可根據(jù)事件執(zhí)行后續(xù)動(dòng)作。
不支持重復(fù)啟動(dòng)STA,再次啟動(dòng)STA時(shí)須先執(zhí)行關(guān)閉STA。
關(guān)閉STA步驟為可選,設(shè)備所處的網(wǎng)絡(luò)地位不變,不需要執(zhí)行關(guān)閉STA。
2.4 編程實(shí)例
示例:實(shí)現(xiàn)STA功能啟動(dòng)、掃描、關(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)需要?jiǎng)?chuàng)建一個(gè)網(wǎng)絡(luò)接入點(diǎn),供其他設(shè)備接入并共享網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)時(shí),需要使用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,啟動(dòng)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,啟動(dòng)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窄帶模式,需要時(shí)可調(diào)用接口設(shè)置,不調(diào)用則默認(rèn)啟動(dòng)20M帶寬SoftAp。
SoftAp的網(wǎng)絡(luò)參數(shù)在關(guān)閉SoftAp時(shí)不會(huì)重置,會(huì)繼續(xù)沿用_上一次配置,重啟單板可恢復(fù)至初始默認(rèn)值。
SoftAp模式下最大關(guān)聯(lián)用戶數(shù)限制:
-小于初始化時(shí)配置的用戶數(shù)量。
-最大關(guān)聯(lián)用戶不超過2個(gè)。
3.4 編程實(shí)例
示例:實(shí)現(xiàn)將SoftAp功能的beacon周期配置為200ms,并啟動(dòng)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)備了超級(jí)詳細(xì)的Hi3861V100硬件&軟件開發(fā)文檔資料,也一并免費(fèi)送給大家學(xué)習(xí)。
責(zé)任編輯人:CC
-
wi-fi
+關(guān)注
關(guān)注
14文章
2169瀏覽量
125015 -
Hi3861
+關(guān)注
關(guān)注
1文章
62瀏覽量
6611
原文標(biāo)題:鴻蒙實(shí)戰(zhàn)課堂 | Hi3861V100創(chuàng)建Wi-Fi驅(qū)動(dòng)應(yīng)用詳細(xì)步驟與方法
文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論