OpenHarmony WLAN驱动框架 原创
WLAN Model
本系列文章准备深入了解OpenHarmony的WLAN驱动模型,由于WLAN驱动模型非常庞大,我尝试根据WIFI 驱动模型的设计特点来给整个模式分模块进行介绍,本文是本系列文章的导读。
学习OpenHarmony的最好途径就是从官网的文档入手,我们可查看官网对于WLAN驱动模型的介绍:
前提必读
OpenHarmony WIFI 驱动模型是基于 HDF 驱动框架开发的,需要先理解 HDF 驱动开发框架,才能来学习WIFI 驱动模型。HDF 驱动的介绍:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf-overview.md
计算机技术是为了解决实际问题而产生,而我们学习WIFI驱动框架,就需要知道这个软件技术是为了解决什么问题。答案可在官网找到:
首先WIFI 驱动模型的基本功能就是提供给上层WLAN能力:
HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点、扫描、关联WLAN热点等。
其次,提供给驱动开发人员接口:
各WLAN厂商驱动开发人员可根据WLAN模块提供的向下统一接口适配各自的驱动代码.
最后是模型的优点:
基于OpenHarmony驱动框架的WLAN驱动模型,可实现跨操作系统迁移,自适应器件差异,模块化拼装编译等功能。
WIFI
WIFI是一种无线传输技术,一般由WIFI芯片实现,通过SDIO或USB接口等与主控芯片连接。WIFI芯片与主控有两种通信通路:命令和数据。数据和命令以分时复用的方式使用SDIO总线。
命令
命令有三种:base,station,ap。
base命令包括:电源、复位等。
station命令包括扫描,连接等。
ap命令包括建立热点,获取连接状态等。
数据
数据包含接受和发送,WIFI是网络设备,其数据需要经过网络协议栈处理,例如LWIP协议栈。
协议栈的数据最终通过SDIO发送到WIFI芯片,WIFI芯片的网络数据也是通过SDIO最终输入到协议栈。
代码
在代码上就可以分为命令和数据两个部分。
命令部分又可以分为三类,分别以feature的方式来命名:
- base feature
- sta feature
- ap feature
这三个概念会贯穿命令传输的通路。
数据通路主要是实现与网络协议栈的适配对接。
具体框架
由于OpenHarmony的驱动框架采用的是C语言面向对象的编程方法,所以在学习中也尽量使用面向对象的方法来入手。着重理解各个对象之间的调用关系,以及对象的创建方法。
下图所示是WLAN 命令通路:
以hdf_wifi_core.c为界,可将通路分为两部分:HDI 层和核心层。
WIFI系列的博客已经更新如下,可在我主页看看:
感谢楼主整理分享