随着物联网、智能家居、车联网等新兴应用的快速发展,传统 Wi‑Fi 技术在设备发现和点对点数据传输方面已无法满足某些场景对低功耗、低延迟和自组织网络的需求。Wi‑Fi NAN(Neighbor Awareness Networking,也称 Wi‑Fi Aware)正是在这样的背景下应运而生,它使得设备无需接入传统无线接入点(AP)即可直接发现周围的其他设备并进行通信,从而为多种场景带来了全新的可能性。
Wi-Fi NAN的架构参考:
Wi-Fi NAN 架构(Wi-Fi Aware Specification v4.0,第二章)-CSDN博客
1. Wi‑Fi NAN 的产品形态
目前,Wi‑Fi NAN 已经呈现出多种产品形态,主要包括以下几类:
智能手机和平板电脑内置功能
- 从 Android 8.0 开始,许多主流智能手机(如 Google Pixel、Samsung Galaxy 等)和平板电脑均内置 Wi‑Fi NAN 功能。用户无需额外硬件即可体验基于 Wi‑Fi NAN 的设备发现与直接通信。
IoT 及智能家居设备
- 越来越多的智能家居产品(如智能音箱、智能灯具、环境传感器等)开始集成 Wi‑Fi NAN 模块,实现设备之间自动发现和互联互通,简化了设备配对流程并降低功耗。
可穿戴设备
- 部分智能手表和健康监测设备也开始采用 Wi‑Fi NAN 技术,实现低功耗的近距离数据交换,支持健康数据共享和实时监测。
车联网及汽车应用
- 在汽车领域,Wi‑Fi NAN 正在被探索用于实现车辆间(V2V)以及车辆与路侧基础设施(V2I)之间的低延迟、直接通信,为自动驾驶和车联网场景提供技术支持。
专用开发平台与芯片解决方案
- 许多芯片厂商(如 Qualcomm、Broadcom 等)已推出支持 Wi‑Fi NAN 的芯片和开发工具包,为 OEM 厂商和开发者提供模块化解决方案,助力将 Wi‑Fi NAN 技术嵌入各类终端设备。
2. Qualcomm Wi-Fi NAN 方案示例
我们使用的硬件平台是i.MX8MP(NXP)+QCC207x(Qualcomm)方案,具体硬件框图如下所示:

Wi-Fi模组,这里我们选择了高通的Wi-Fi 7芯片QCC2076作为示例,并且使用Quectel的模组FGE576Q:

2.1 连接实物图
关于实物连接,因为我们的FGE576Q是M.2 Key-E接口的模组,并且我们的i.MX8MP有M.2 Key-E的接口,所以无需任何飞线或者转接板,直接插上去即可,具体如下图所示:

2.2 获取代码
我已经为大家准备好了相关代码SDK,无需自己从头bringup,从github上直接拉取编译即可,具体指令如下所示:
# git clone git@github.com:Qingzong-MA/Simple_Router.git # 如果需要相关代码,请联系博主# cd Simple_Router# source build-quec.sh# buildconfig FGE576QAAMD FGE576QAAMD_IMX8_5.15_LINUX_R01A01V01# bitbake core-image-minimal
如果需要技术支持,请移步咸鱼(思考的下一页),搜索“Wi-Fi NAN 软件驱动包(有技术支持)”:
2.2.1 固件烧录
自行参考网上相关文档,如有相关疑问,请留言给博主即可。
2.2.2 安装QCA2076驱动
确认硬件识别:
# lspci | grep Qualcomm
安装QCA驱动:
# insmod /lib/modules/5.15.71+g305f6c9af2db/extra/qcc207x/wlan.ko
2.3 使能Wi-Fi NAN
- 开始加入到NAN族群
- 输入如下指令在DUT-A和DUT-B中:
- DUT-A 输入:Nandemotool nan enable --cluster_low=0 --cluster_high=65535 --master_pref=100
- DUT-B 输入:Nandemotool nan enable --cluster_low=0 --cluster_high=65535 --master_pref=90
- 检查DUT-A和DUT-B的输出:
- DUT-A 输出:
- nanEventDiscEngEvent: Self STA 02:ab:de:d5:53:ad
- nanEventDiscEngEvent: event_type 1
- nanEventDiscEngEvent: Started cluster 50:6f:9a:01:f0:cf
- DUT-B 输出:
- nanEventDiscEngEvent: Self STA 02:2b:70:dc:17:7d
- nanEventDiscEngEvent: event_type 2
- nanEventDiscEngEvent: Joined cluster 50:6f:9a:01:f0:cf
- DUT-A 输出:
- 输入如下指令在DUT-A和DUT-B中:
- 发布和订阅
- 输入如下指令在DUT-A和DUT-B中:
- DUT-A 输入:Nandemotool nan publish --service_name=NAN-Secure-Service-A --ssi=nantest1 --service_responder_policy=0 --publish_type=0
- DUT-B 输入:Nandemotool nan subscribe --subscribe_type=0 --service_name=NANSecure-Service-A --ssi=nantest1 --subscribe_match=1
- 检查DUT-A和DUT-B的输出:
- DUT-A 输出:
- nanNotifyResponse: publish_id 1
- DUT-B 输出:
- nanNotifyResponse: subscribe_id 128
- DUT-A 输出:
- 输入如下指令在DUT-A和DUT-B中:
- NDP negotiationa.
- 输入如下指令在DUT-A和DUT-B中:
- DUT-A 输入:
- Nandemotool nan ndp_response --transaction_id=100 --ndp_iface="aware_data0" --ndp_instance_id=1 --app_info="wlanapp" --ndp_rsp_code=0
- DUT-B 输入:
- iwpriv wlan0 setUnitTestCmd 46 2 54 0” to make ndp_instance_id=1
- Nandemotool nan ndp_request --transaction_id=100 --ndp_iface="aware_data0" --ndp_channel=2437 --ndp_channel_cfg=1 --service_instance_id=16777216 --peer_addr=02:ab:de:d5:53:ad --app_info="0102030405"b.
- 检查DUT-A和DUT-B的输出:
- DUT-A 输出:No. channel = 1 Id:0 Channel:5745 Channel Width:2 NSS 2
- DUT-B 输出:No. channel = 1 Id:0 Channel:5745 Channel Width:2 NSS 2
3. 当前 Wi‑Fi NAN 的应用场景
Wi‑Fi NAN 技术的核心优势在于无需依赖传统 AP 的设备发现和数据传输能力,其实际应用场景主要包括:
零售与商业广告
- 在商场、超市等零售场所,Wi‑Fi NAN 可用于实现基于用户位置的实时促销信息推送。例如,当顾客走进某区域时,系统自动检测并向其手机发送优惠券、产品推荐或店内活动信息,从而提升用户体验和转化率。
智能家居互联
- 家中各类智能设备(如智能电视、音箱、温控器、门锁等)可以通过 Wi‑Fi NAN 自动互联,无需复杂的配对流程。这种直接连接方式不仅降低了设备功耗,还简化了设备间的数据交换和协同工作。
点对点内容分享与社交互动
- Wi‑Fi NAN 支持在设备之间建立点对点数据通道,方便用户在近距离内快速传输照片、视频以及其他多媒体内容,无需依赖互联网或传统 AP,从而实现高效的社交互动和信息共享。
车联网及汽车近场通信
- 在车联网场景中,Wi‑Fi NAN 被探索用于实现车辆与车辆、车辆与基础设施之间的直接通信。通过低延迟和高可靠性的近场通信,车辆能够共享实时路况信息、碰撞预警数据以及交通控制指令,助力智能驾驶和安全管理。
公共场所定位与人流管理
- 在大型活动、展览或交通枢纽中,Wi‑Fi NAN 可用于匿名收集附近设备信号,分析人群密度与流动趋势。这为场馆安全管理、实时导引及资源调度提供了数据支持,帮助管理者及时做出调整。